IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

VBA - Erreur d exécution - aucun enregistrement en cours


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 18
    Par défaut VBA - Erreur d exécution - aucun enregistrement en cours
    Bonjour,

    J essaye d envoyer des mails à des destinataires selon une requête ( champ coché ) , ça marche si la table contient des enregistrements.
    Si la table contient aucun enregistrement mon code plante j ai un message : erreur d exécution - aucun enregistrement en cours.
    Problème Movefirst.

    voici le code : Table (T_Email ) ---- Requête (R_EMailOui)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    Sub LaTotale()
     
      ' Initialisation :
      Dim ListeEMail As Recordset
      Set ListeEMail = CurrentDb.OpenRecordset("R_EMailOui")
      ListeEMail.MoveFirst
      ListeComplete = ""
     
      ' Parcourt de la requête :
      While Not ListeEMail.EOF
        ListeComplete = ListeComplete & ListeEMail("EMail") & ";"
        ListeEMail.MoveNext
      Wend
     
      ' On enlève le dernier point virgule :
      ' ListeComplete nous sera évidemment utile tout à l'heure :
      ListeComplete = Left(ListeComplete, Len(ListeComplete) - 1)
     
      ' Stop DAO :
      ListeEMail.Close
      Set ListeEMail = Nothing
     
      ' #######################################
      ' # 2. Envoi de l'E-Mail avec Outlook : #
      ' #######################################
     
      ' Initialisation :
      Dim MonOutlook As Object
      Dim MonMessage As Object
      Set MonOutlook = CreateObject("Outlook.Application")
      Set MonMessage = MonOutlook.createitem(0)
     
      ' Préparation du message :
      MonMessage.to = ListeComplete
     
      ' Récupération de la chaîne d'E-Mails Access :
      MonMessage.bcc = "xxx@free.fr"
      MonMessage.Subject = "Actions à faire"
      Corps = "Bonjour,"
      Corps = Corps & Chr(13) & Chr(10)
      Corps = Corps & "Vous avez des actions en cours"
      MonMessage.body = Corps
     
      ' C'est parti :
      MonMessage.send
     
      ' Fermeture de la session Outlook :
      Set MonOutlook = Nothing
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    SAlut,

    tu peux gerer le cas avec un test du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not ListeEmai.EOF Then lListeEMail.MoveFirst
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 18
    Par défaut
    Merci pour l aide ,
    je suis débutant , à quel endroit j insère ton code?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set ListeEMail = CurrentDb.OpenRecordset("R_EMailOui")
    If Not ListeEmai.EOF Then lListeEMail.MoveFirst
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 18
    Par défaut
    ça ne fonctionne pas j ai erreur sur :

    ListeComplete = Left(ListeComplete, Len(ListeComplete) - 1)

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Logique, vu que si Len() = 0, Len()-1 = -1 et Left(,-1) n'est pas possible

    Il te faut donc gerer la longueur en amont

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Len(ListeComplete)>0 Then
    ...
    End If
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/05/2015, 03h32
  2. [AC-2007] erreur d'execution '3021' : aucun enregistrement en cours
    Par gimly90 dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/05/2013, 16h06
  3. Erreur " 3021 Aucun enregistrement en cours"
    Par Secco dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/04/2008, 14h46
  4. Aucun enregistrement en cours
    Par gentoo dans le forum Access
    Réponses: 4
    Dernier message: 18/03/2007, 14h48
  5. Recordset Fields aucun enregistrement en cours
    Par Mariboo dans le forum Access
    Réponses: 2
    Dernier message: 24/05/2006, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo