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 :

Envoi de mail outlook [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut Envoi de mail outlook
    Bonjour,

    m'étant appuyé sur http://access.developpez.com/faq/?page=Outlook#outlook

    puis, derrière mon bouton, j'ai placé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Commande71_Click()
        Dim Recipient As String, Subject As String, Body As String
            Recipient = "SELECT [log] & "@tam.org" AS mail" & _
                        "FROM T_Agents" & _
                        "INNER JOIN TR_Maintenance_Agents ON (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent) AND (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent)" & _
                        "WHERE (((TR_Maintenance_Agents.NUM_demande_maintenance)=[Formulaires]![F_Gestion_Maintenance_Batiments]![Id_demande_maintenance]));"
            Subject = Me.ZLD_Bâtiments
            Body = Me.Lb_demande_maintenance
            CreateEmail Recipient, Subject, Body
    End Sub
    mais j'ai un erreur qui me souligne le caractère "@"
    pourtant ça passe bien en SQL, mais là, je bloque...

    Dans la ligne 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [log] & "@tam.org" AS mail
    je concatène le login de l'utilisateur et @tam.org, inutile de stocker l'adresse mail complète...

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Cela doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Commande71_Click()
        Dim Recipient As String, Subject As String, Body As String
            Recipient = "SELECT [log]" & "'@tam.org' AS mail" & _
                        "FROM T_Agents" & _
                        "INNER JOIN TR_Maintenance_Agents ON (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent) AND (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent)" & _
                        "WHERE (((TR_Maintenance_Agents.NUM_demande_maintenance)=[Formulaires]![F_Gestion_Maintenance_Batiments]![Id_demande_maintenance]));"
            Subject = Me.ZLD_Bâtiments
            Body = Me.Lb_demande_maintenance
            CreateEmail Recipient, Subject, Body
    End Sub
    Dans une requête en VBA ,il ne faut pas utiliser ", mais plutôt '.

    @+.

  3. #3
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    Je te remercie beaucoup, décidément, j'aurai toujours du mal avec ces différences de syntaxe...

    ça marche un peu mieux mais ça ne fonctionne pas car ça m'envoie un mail mais avec 'SELECT [log' comme résultat de la requête, donc comme adresse mail.

    Merci de me corriger

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Avec quelque chose comme cela tu devrais y arriver :
    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
    Private Sub Commande71_Click()
        Dim Recipient As String, Subject As String, Body As String
     
        SQL = "SELECT [log]" & "'@tam.org' AS mail" & _
            "FROM T_Agents" & _
            "INNER JOIN TR_Maintenance_Agents ON (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent) AND (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent)" & _
            "WHERE (((TR_Maintenance_Agents.NUM_demande_maintenance)=[Formulaires]![F_Gestion_Maintenance_Batiments]![Id_demande_maintenance]));"
        Set oSQL = CurrentDb.OpenRecordset(SQL)
        While Not oSQL.EOF
            Recipient = oSQL.Fields(0)
            oSQL.MoveNext
        Wend
        oSQL.Close
        Set oSQL = Nothing
     
        Subject = Me.ZLD_Bâtiments
        Body = Me.Lb_demande_maintenance
        CreateEmail Recipient, Subject, Body
    End Sub

  5. #5
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    Merci,

    je suppose que je dois déclarer SQL as String?

    et pour oSQL?
    erreur de compilation, variable non définie

    Tu peux m'expliquer brièvement ce que tu m'as rajouté?

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL as string
    oSQL as  recordset

  7. #7
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Salut,

    ici c'est un mélange de concaténation SQL et VBA.
    Dans ton cas il faut faire une concaténation SQL donc laisser & dans la chaîne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            SQL = "SELECT [log] & '@tam.org' AS mail" & _

  8. #8
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    j'ai complété, et corrigé mais j'obtiens maintenant cette erreur (en pièce jointe)

    Serait-ce une référence manquante?
    j'ajoute mes références en PJ.
    Images attachées Images attachées    

  9. #9
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    en faisant un debug.print de ta chaîne SQL tu verrais qu'il manque des espaces:

    • après mail
    • après agents

    ta chaîne doit ressembler à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT blaFROM matableWHERE x = 2

  10. #10
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msgbox SQL
    Set oSQL = CurrentDb.OpenRecordset(SQL)
    Dans la fenêtre qui apparaît, fait un copie (Ctrl+C), ensuite ouvre une requête vide copie le code obtenu en virant ce qui ne va pas, et regarde ta requête.

    @+.

  11. #11
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    Merci, j'ai corrigé ma requête, qui fonctionne bien en mode SQL.

    Et maintenant, je tombe sur ce message d'erreur et en débugant, toujours cette ligne surlignée en jaune.
    Images attachées Images attachées   

  12. #12
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Peux-tu me donner ce que dit le Msgbox SQL

  13. #13
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    Oui, bien-sûr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [log] & '@tam.org' AS mail FROM T_Agents INNER JOIN TR_Maintenance_Agents ON (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent) AND (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent)WHERE (((TR_Maintenance_Agents.NUM_demande_maintenance) = [Formulaires]![F_Gestion_Maintenance_Batiments]![Id_demande_maintenance]));

  14. #14
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    ta clause WHERE est collée une parenthèse fermante ...

  15. #15
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    Ok, j'ai corrigé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [log] & '@tam.org' AS mail FROM T_Agents INNER JOIN TR_Maintenance_Agents ON (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent) AND (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent) WHERE (((TR_Maintenance_Agents.NUM_demande_maintenance) = [Formulaires]![F_Gestion_Maintenance_Batiments]![Id_demande_maintenance]));
    Mais j'ai toujours les mêmes messages d'erreur et cette ligne en jaune.

  16. #16
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    Peux-tu me donner ce que dit le Msgbox SQL
    Peux tu donner le résultat ?

  17. #17
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    le résultat de la requête?
    c'est bien l'adresse mail qui m'intéresse.

    dupont@tam.org

  18. #18
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    oui mais je veux le reste de ce que t'affiche Msgbox SQL

  19. #19
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    le reste? je ne vois pas
    Images attachées Images attachées  

  20. #20
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Donne me moi le msgbox :
    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
    Private Sub Commande71_Click()
        Dim Recipient As String, Subject As String, Body As String
     
        SQL = "SELECT [log] & '@tam.org'  AS mail" & _
            "FROM T_Agents" & _
            "INNER JOIN TR_Maintenance_Agents ON (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent) AND (T_Agents.N° = TR_Maintenance_Agents.NUM_Agent)" & _
            "WHERE (((TR_Maintenance_Agents.NUM_demande_maintenance)=" & [Formulaires]![F_Gestion_Maintenance_Batiments]![Id_demande_maintenance] & "));"
        Msgbox SQL
        Set oSQL = CurrentDb.OpenRecordset(SQL)
        While Not oSQL.EOF
            Recipient = oSQL.Fields(0)
            oSQL.MoveNext
        Wend
        oSQL.Close
        Set oSQL = Nothing
     
        Subject = Me.ZLD_Bâtiments
        Body = Me.Lb_demande_maintenance
        CreateEmail Recipient, Subject, Body
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2007] Crash d'envoi de mail outlook
    Par zibi7 dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/07/2009, 13h47
  2. Envoi de mail Outlook à partir d'Excel
    Par Daejung dans le forum VBA Outlook
    Réponses: 8
    Dernier message: 20/12/2008, 00h37
  3. [VBA] envoi de mail Outlook express ne s'ouvre pas
    Par le.dams dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 14/08/2008, 17h56
  4. Envoi e-mail outlook avec access
    Par Jacques-Henri dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/11/2007, 21h19
  5. [VBA-E] pb envois de mail outlook
    Par minoru dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/08/2005, 20h42

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