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 outlook via ACCESS [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2012
    Messages : 178
    Points : 78
    Points
    78
    Par défaut Envoi outlook via ACCESS
    Bonjour,

    J'ai un formulaire avec un bouton qui envoie un courriel Outlook automatiquement. Pour y arriver j'ai installé le code fourni sur le site d'aide Microsoft.

    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
    Private Sub envoi_Click()
    Dim Envol As New Outlook.Application
    Dim Env As MailItem
     
    ' Création d'un objet de type message
    Set Env = Envol.CreateItem(olMailItem)
     
    'destinataires
    Env.To = "adresse du client"
    ' copie de message
    Env.CC = "adresse de l'expéditeur"
     
    ' sujet du message
    Env.Subject = "Envoi d'un message à partir d'Access"
    'le corps du message est récupéré sur le formulaire
    Env.Body = Me![Message]
     
    ' envoi du message
    Env.Send
     
    ' libération de l'objet
    Set Env = Nothing
    End Sub
    Cela fonctionne sauf que les adresses "Env to: et CC" sont fixes dans le code.

    Comment changer automatiquement, l'adresse de destination (Env.to) selon le client à partir d'un champs (sur ce même formulaire) contenant l'adresse outlook de ce même client? Même chose pour l'expéditeur

    Aussi (Si possible) comment empêcher le message d'alerte "Un programme tente d'envoyer automatiquement du courrier....." où l'on doit répondre oui à chaque fois.

    Merci à l'avance!!!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour, sans trop chercher, voici déjà une discussion sur DVP qui parle du problème.

    Perso j'utilise l'automation outlook dans une appli que je viens de développer et je n'ai pas ce message. Sûrement car je fais un .Display avant de l'envoyer.

    Comment changer automatiquement, l'adresse de destination (Env.to) selon le client à partir d'un champs (sur ce même formulaire) contenant l'adresse outlook de ce même client? Même chose pour l'expéditeur
    Bah il suffit de récupérer le nom du champs...Y'a rien de bien compliqué lol :
    Voici une fonction qui pourrait t'aider :
    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
    Public Sub envoyerMail(pDestinataire As String, pManager As String, pMessage As String, pObject As String)
     
        Dim MonOutlook As Outlook.Application
        Dim MonMessage As Outlook.MailItem
     
        On Error GoTo Err_envoyerMail
     
        ' ===== Initialisation =====
        Set MonOutlook = CreateObject("Outlook.Application")
        Set MonMessage = MonOutlook.CreateItem(0)
     
        ' ===== Création de l'email =====
        With MonMessage
            .To = pDestinataire
            .CC = pManager
            .Subject = pObject
            .Body = pMessage
            .Display
            '.Send
        End With
     
    Exit_envoyerMail:
        Set MonOutlook = Nothing
        Exit Sub
     
    Err_envoyerMail:
        Select Case Err.Number
            Case Else
                MsgBox "Erreur n°" & Err.Number & vbCrLf & "Description : " & Err.Description & vbCrLf & "Source : " & Err.Source, vbCritical, "Erreur"
        End Select
        Resume Exit_envoyerMail
     
    End Sub
    A utiliser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    envoyerMail Me.owner_email, Me.emailResponsible, strMessage,  "Objet du message"

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2012
    Messages : 178
    Points : 78
    Points
    78
    Par défaut
    Merci Paidge,

    Comme je suis vraiment peu connaissant en code, Serais je trop te demander de m'assembler le code de façon à ce que j'ai uniquement à le coller dans mon "événnement clic" du bouton en question ?

    Excuse mon ignorance mais j'ai encore beaucoup à apprendre...

    Encore merci!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Le grand bloc c'est à mettre dans un module.

    Puis sur ton évènement click tu mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    envoyerMail "destinataire@server.com", "encopie@server.com", "Bonjour, blabla, etc.",  "RE : Objet du message"
    A adapter suivant tes besoins.
    Il ne faut pas oublier d'activer la librairie Microsoft Outlook.

    Pour de plus amples explications, Google est ton ami et le site regorge d'informations.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2012
    Messages : 178
    Points : 78
    Points
    78
    Par défaut
    Bonjour Paidge,

    Désolé pour le décalage la fin de semaine fut longue...

    J'ai finalement "abouti" ! En majeur partie grâce à toi et comme tu l'as si bien dit mon ami Google...
    Je réussie a partir de mon formulaire, à ouvrir outlook, tout en y mettant grâce à des champs masqués, les textes et adresses mails selon le no de client apparaissant sur ce même formulaire. Vraiment pratique. Il ne reste à l'opérateur qu'à valider les infos, et envoyer le courriel.

    Vraiment! Merci pour ton aide et ta dispo...

    Au plaisir!

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

Discussions similaires

  1. [AC-2010] Recordset non fonctionnel pour envoi mail outlook via access
    Par dadou5821 dans le forum VBA Access
    Réponses: 11
    Dernier message: 15/12/2014, 15h01
  2. Envoi mail via access
    Par kadiato dans le forum Modélisation
    Réponses: 1
    Dernier message: 23/09/2008, 13h37
  3. Envoi Mail via Access
    Par p935754 dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/08/2007, 11h09
  4. Piloter outlook via access
    Par master83 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/06/2007, 09h08
  5. Réponses: 8
    Dernier message: 23/01/2007, 21h02

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