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 :

envoyer mail avec access


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut envoyer mail avec access
    J'ai vraiment besoin d'un coup de main, je suis bloqué, alors s'il vous plait : AIDEZ-MOI!!!!!!!

    J'ai "créé" avec access un petit programme qui me permet d'envoyer des mails à toutes les personnes qui sont séléctionnés dans une requete.
    j'envoi un mail a une adresse qui se charge de changer le mail en texto. J'ai donc créé un pg qui sert a envoyer des textos avec access (wouah!)

    (en réalité j'ai plutot pompé le programme d'un gars sur le site :le grenier access)

    A la base le programme fonctionne.... mais quand je crée sur mon formulaire une etiquette de recherche, ça ne fonctionne plus !snif....
    (ca par contre c'est de moi)

    L'étiquette permet de faire une selection au sein de ma requete, pour ça j'ai ajouté dans ma requete ( dans les critères du champs qualification ): Comme "*" & [forms]![Envoi d'un sms avec message unique]![Recherche] & "*"


    Voila le pg en vba

    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
    51
    52
    53
    54
    55
    Option Compare Database
    Public Sub SendMail(ByVal strEmail As String, _
      ByVal strObj As String, _
      ByVal strMsg As String, _
      ByVal blnEdit As Boolean)
    On Error Resume Next
    DoCmd.SendObject acSendNoObject, , , strEmail, , , strObj, strMsg, blnEdit
    End Sub
    Private Sub Commande12_Click()
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
      Dim rst As DAO.Recordset
      Dim strSQL As String
      Dim strMessageType As String
      Dim strTitre As String
      Dim strMsg As String
      Dim titreMsg As String
      ' Titre du message
     strTitre = "{Tel}"
     
      ' Message type à expédier
      ' Les signes {...} seront remplacés plus loin par
      ' les infos Client
     
      strMessageType = Nz([Message unique], " ")
     
      ' Ouverture de la requête
      ' (seuls les clients ayant un email sont concernés ici)
      strSQL = "SELECT * FROM [Envoi d'un sms avec message unique]" _
        & " WHERE [Email] IS NOT NULL"
      Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
     
      ' Parcourir la liste des clients
      While Not rst.EOF
        ' Construire un message personnalisé
        ' (on remplace chaque {...} du message par les champs
        ' équivalents de la requête
        titreMsg = Replace(strTitre, "{Tel}", rst("Tel"))
        strMsg = Replace(strMessageType, "{Tel}", rst("Tel"))
     
     
     
        ' Expédier le mail
        SendMail rst("Email"), titreMsg, strMsg, False
     
        ' Client suivant
        rst.MoveNext
      Wend
     
      ' On libère les ressources
      rst.Close
      Set rst = Nothing
     
      ' Un petit message de confirmation
      MsgBox "Les messages ont bien été envoyé", vbInformation, "Envoi de SMS"
    End Sub
    Alors s'il vous plait les mecs : Vous pouvez me faire UN PETIT MIRACLE ?
    Je voudrais vraiment faire une recherche sur mon formulaire et envoyer les mails en appuyant sur un bouton envoyer.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut toujours pb de mail avec access
    Ah oui j'oubliais le message d'erreur c'est : Erreur d'exécution '3061' trop peu de parametre. 1 attendu. Désolé

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Remplace
    Citation Envoyé par chrisbc Voir le message
    " WHERE [Email] IS NOT NULL"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        " WHERE [Email]<>NULL"
    Amicalement

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut Merci
    je te remercie vraiment de me répondre mais malheureusement ça ne marche pas. Mais si t'as une idée hesite pas !

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Dans cette requête
    strSQL = "SELECT * FROM [Envoi d'un sms avec message unique]" _
    & " WHERE [email] IS NOT NULL"
    que représente [Envoi d'un sms avec message unique]? Est ce une table ou une requête enregistrée?
    Amicalement

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut C'est une requete
    Ca représente une requete mais c'est vrai qu'il y a aussi un formulaire qui porte le même nom...j'avoue C'est pas trés malin

    Maintenant que j'y pense, (si je me souviens bien) quand j'ai fait des recherches sur le pb, j'ai vu que le message :erreur d'execution '3061' signifiait qu'il n'arrivait pas a trouver l'étiquette sur le formulaire. En gros il lui manque l'information dans l'étiquette. C'est ^peut etre parce que le formulaire a le même nom que la requete, je vais essayer de changer le nom de la requete pour voir....

    En tout cas je te remercie de ton aide ça fait vraiment cho au coeur
    Si tu veux je peux t'envoyer mon fichier access...

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut ca marche pas sniff
    j'ai modifié le nom de ma requete maintenant le code donne :
    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
    51
    52
    53
    54
    55
    Option Compare Database
    Public Sub SendMail(ByVal strEmail As String, _
      ByVal strObj As String, _
      ByVal strMsg As String, _
      ByVal blnEdit As Boolean)
    On Error Resume Next
    DoCmd.SendObject acSendNoObject, , , strEmail, , , strObj, strMsg, blnEdit
    End Sub
    Private Sub Commande12_Click()
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
      Dim rst As DAO.Recordset
      Dim strSQL As String
      Dim strMessageType As String
      Dim strTitre As String
      Dim strMsg As String
      Dim titreMsg As String
      ' Titre du message
     strTitre = "{Tel}"
     
      ' Message type à expédier
      ' Les signes {...} seront remplacés plus loin par
      ' les infos Client
     
      strMessageType = Nz([Message unique], " ")
     
      ' Ouverture de la requête
      ' (seuls les clients ayant un email sont concernés ici)
      strSQL = "SELECT * FROM [Requete envoi d'un sms avec message unique]" _
        & " WHERE [Email] IS NOT NULL"
      Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
     
      ' Parcourir la liste des clients
      While Not rst.EOF
        ' Construire un message personnalisé
        ' (on remplace chaque {...} du message par les champs
        ' équivalents de la requête
        titreMsg = Replace(strTitre, "{Tel}", rst("Tel"))
        strMsg = Replace(strMessageType, "{Tel}", rst("Tel"))
     
     
     
        ' Expédier le mail
        SendMail rst("Email"), titreMsg, strMsg, False
     
        ' Client suivant
        rst.MoveNext
      Wend
     
      ' On libère les ressources
      rst.Close
      Set rst = Nothing
     
      ' Un petit message de confirmation
      MsgBox "Les messages ont bien été envoyé", vbInformation, "Envoi de SMS"
    End Sub
    Malheureusement il me remet le même message d'erreur.
    sinon j'ai aussi trouvé une aide dans access qui parle de QueryDef...Ca te dit quelquechose ?
    En tout ca si t'arrivais a me régler ce pb ça pourrait peut être bien me changer la vie et celle de ma boite...Alors si tu connais du monde...

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Le fait que la requête et le formulaire porte le même nom n'est peut être pas le problème. Je penses plutôt que c'est la manière dont tu utilise le critère (une étiquette) qui constitue le problème. Et pour en avoir le coeur net, il serait bon de nous montrer ta requête.

    QueryDef...Ca te dit quelquechose ?
    bien sur mais ne sautons pas les étapes.
    Amicalement

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut ma requete
    no problem voici ma requete au format sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SELECT SMS.N°, SMS.Nom, SMS.Prénom, INFO.[Qualification  inter], INFO.[N° de téléphone  inter], "envoitexto@yahoo.fr" AS Email, Replace([N° de téléphone  inter],".","") AS TELEPHONE, Replace([TELEPHONE]," ","") AS Tel
    FROM INFO RIGHT JOIN SMS ON INFO.[N° Intérimaire inter] = SMS.N°
    WHERE (((INFO.[Qualification  inter]) Like "*" & [forms]![Envoi d'un sms avec message unique]![Recherche] & "*") AND ((INFO.[N° de téléphone  inter]) Like "06" & "*"));

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    La requête semble correcte. Mais il faut utiliser une zone de texte comme critère et non une étiquette ou ajouter .[Légende] si c'est bien une étiquette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Formulaires]![Nom du formulaire]![nom Etiquette].[Légende]
    Tu peux aussi remplacer ton champs Recherche du formulaire par n'importe quelle zone de texte juste pour tester.
    Amicalement

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut Zone de liste déroulante
    Autant pour moi...Je ferai plus attention a mon vocabulaire, en réalité c'est pas une étiquette c'est : "une zone de liste déroulante" qui sert a faire une selection au sein du formulaire. Je choisi un critère dans la liste et ça m'affiche automatiquement la selection correspondante.

    J'ai quand même essayé ce que tu m'as proposé mais ça ne marche posnif

    Je peux t'envoyer mon fichier par mail ? Ce sera peut être plus simple...

  12. #12
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Si tu faisais une recherche dans la FAQ sous zone de liste, tu aurais vite trouvé comment récupérer la valeur sélectionée.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut J'ai déja essayé...enfin je crois
    merci a toi de me répondre...mais si tu parles de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    trSQL = "SELECT * FROM [Requete envoi d'un sms avec message unique]" _
        & " WHERE [Qualification  inter]=[forms]![Envoi d'un sms avec message unique]![Recherche]"
    ça revient exactement au même il me met le même message d'erreur....Tu parles bien de ça ?

  14. #14
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Re,

    Quelle est le nom de ta zone de liste ?

    A-t-elle une ou plusieurs colonnes (même cachée(s) ?

    Si oui, l'info que tu souhaites récupérer est dans quelle colonne ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut une colone, Recherche
    Ma zone de liste s'appelle : Recherche
    elle n'a qu'une colonne

  16. #16
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Essai de remplacer
    strSQL = "SELECT * FROM [Requete envoi d'un sms avec message unique]" _
    & " WHERE [email] IS NOT NULL"
    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    strSQL = "SELECT SMS.N°, SMS.Nom, SMS.Prénom, INFO.[Qualification  inter], INFO.[N° de téléphone  inter], "envoitexto@yahoo.fr" AS Email, Replace([N° de téléphone  inter],".","") AS TELEPHONE, Replace([TELEPHONE]," ","") AS Tel FROM INFO RIGHT JOIN SMS ON INFO.[N° Intérimaire inter] = SMS.N° WHERE (((INFO.[Qualification  inter]) Like "*" & [forms]![Envoi d'un sms avec message unique]![Recherche] & "*") AND ((INFO.[N° de téléphone  inter]) Like "06" & "*"));"
     
    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
    Amicalement

  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut "erreur de compilation : erreur de syntaxe"
    Je te remercie vraiment, vraiment de m'aider, ça fait super plaisir.
    Par contre quand je rentre ton code, il me met "erreur de compilation : erreur de syntaxe"

  18. #18
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par chrisbc Voir le message
    ... il me met "erreur de compilation : erreur de syntaxe"
    Normal le problème c'est l'email. Il faut remplacer les "" par des ''
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'envoitexto@yahoo.fr'
    essai pour voir
    Amicalement

  19. #19
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 1
    Points
    1
    Par défaut Ca marche tj pas ...
    Je suis vraiment désolé de te torturer comme ça mais ça marche toujours pas, il me met : "erreur de compilation : attendu :fin d'instruction" tu veux pas que je t'envoi le fichier ?

  20. #20
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par chrisbc Voir le message
    tu veux pas que je t'envoi le fichier ?
    Ce n'est peut être pas nécessaire (encore). Montre le code déjà.

    "erreur de compilation : attendu :fin d'instruction"
    Eh bien cet erreur survient quand on a pas fermé une instruction.
    Amicalement

Discussions similaires

  1. [AC-2003] Envoyer mail avec Lotus Notes 6.5 à partir d'Access
    Par demichoux dans le forum VBA Access
    Réponses: 8
    Dernier message: 04/03/2019, 16h10
  2. Envoyer un fichier Excel par mail avec Access
    Par challe1976 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 26/01/2015, 18h47
  3. [AC-2007] Je n'ai pas outlouk ni OE et je veux envoyer un mail avec access
    Par Filou07 dans le forum VBA Access
    Réponses: 8
    Dernier message: 02/07/2009, 13h53
  4. envoyer mail avec delphi
    Par Seb4657 dans le forum Composants VCL
    Réponses: 18
    Dernier message: 02/01/2006, 14h28
  5. Envoyer mail avec runtime access 2000
    Par Tierisa dans le forum Runtime
    Réponses: 7
    Dernier message: 07/11/2005, 18h10

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