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 :

mail automatique dans un formulaire


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut mail automatique dans un formulaire
    Bonjour j'ai une question urgente...

    j'ai essayé de construire un code permettant d'envoyer un mail via mon interface access 2007. ce mail par correctement avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim appOutLook As Outlook.Application
                        Dim MailOutLook As Outlook.MailItem
                        Set appOutLook = CreateObject("Outlook.Application")
                        Set MailOutLook = appOutLook.CreateItem(olMailItem)
                        Set appOutLook = CreateObject("Outlook.Application")
                        Set MailOutLook = appOutLook.CreateItem(olMailItem)
                        With MailOutLook
                                .To = "mon-email@domaine.eu"
                                .Subject = "Form. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                                .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\archives\" & Me.id.Value & ".xlsm )"
                                .Send
                        End With
                        MsgBox "Your message is good sended at Christophe  !"
    Juste là tout va bien !

    Mais j'ai une fonction à intégrer qui rend la chose "conditionnelle" !

    J'ai un champ "BU-Manager" qui contient un login de 4 digit, et je voudrais que si ce champ est complété, ben que le mail soit transmis à qui de droit...

    j'ai écris donc ce code... mais cela ne va pas, qui saurait me dire pourquoi ... je galère trop pfff

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    If Me.BU_Manager = "Choose here !" Then
        MsgBox "Please choose the BU MANAGER ! "
     
        Else
     
        If Me.BU_Manager = "Pigi" Then
     
            Dim appOutLook As Outlook.Application
            Dim MailOutLook As Outlook.MailItem
            Set appOutLook = CreateObject("Outlook.Application")
            Set MailOutLook = appOutLook.CreateItem(olMailItem)
            Set appOutLook = CreateObject("Outlook.Application")
            Set MailOutLook = appOutLook.CreateItem(olMailItem)
            With MailOutLook
                    .To = "contact1@domaine.eu"
                    .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                    .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\\" & Me.id.Value & ".xlsm )"
                    .Send
            End With
            MsgBox "Your message is good sended at contact1 !"
     
        Else
     
            If Me.BU_Manager = "SeAn" Then
     
                Dim appOutLook As Outlook.Application
                Dim MailOutLook As Outlook.MailItem
                Set appOutLook = CreateObject("Outlook.Application")
                Set MailOutLook = appOutLook.CreateItem(olMailItem)
                Set appOutLook = CreateObject("Outlook.Application")
                Set MailOutLook = appOutLook.CreateItem(olMailItem)
                With MailOutLook
                        .To = "contact2@domaine.eu"
                        .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                        .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\\" & Me.id.Value & ".xlsm )"
                        .Send
                End With
                MsgBox "Your message is good sended at contact2 !"
     
            Else
     
                If Me.BU_Manager = "JcPa" Then
     
                    Dim appOutLook As Outlook.Application
                    Dim MailOutLook As Outlook.MailItem
                    Set appOutLook = CreateObject("Outlook.Application")
                    Set MailOutLook = appOutLook.CreateItem(olMailItem)
                    Set appOutLook = CreateObject("Outlook.Application")
                    Set MailOutLook = appOutLook.CreateItem(olMailItem)
                    With MailOutLook
                            .To = "contact3@domaine.eu"
                            .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                            .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\\" & Me.id.Value & ".xlsm )"
                            .Send
                    End With
                    MsgBox "Your message is good sended at contact3 !"
     
                Else
     
                    If Me.BU_Manager = "Arta" Then
     
                        Dim appOutLook As Outlook.Application
                        Dim MailOutLook As Outlook.MailItem
                        Set appOutLook = CreateObject("Outlook.Application")
                        Set MailOutLook = appOutLook.CreateItem(olMailItem)
                        Set appOutLook = CreateObject("Outlook.Application")
                        Set MailOutLook = appOutLook.CreateItem(olMailItem)
                        With MailOutLook
                                .To = "contact4@domaine.eu"
                                .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                                .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\\" & Me.id.Value & ".xlsm )"
                                .Send
                        End With
                        MsgBox "Your message is good sended at Contact4 !"
     
                    Else
     
                        Dim appOutLook As Outlook.Application
                        Dim MailOutLook As Outlook.MailItem
                        Set appOutLook = CreateObject("Outlook.Application")
                        Set MailOutLook = appOutLook.CreateItem(olMailItem)
                        Set appOutLook = CreateObject("Outlook.Application")
                        Set MailOutLook = appOutLook.CreateItem(olMailItem)
                        With MailOutLook
                                .To = "contact5@domaine.eu"
                                .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                                .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\archives\" & Me.id.Value & ".xlsm )"
                                .Send
                        End With
                        MsgBox "Your message is good sended at Contact5 !"
     
                    End If
                End If
            End If
        End If
     End If
    End Sub

  2. #2
    Membre éclairé
    Profil pro
    Webmaster
    Inscrit en
    Mai 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2008
    Messages : 281
    Par défaut
    bon c'est ok j'ai trouvé... que je suis fière

    voici le bon code, en espèrant que cela serve à quelqu'un d'autre !

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
                Dim appOutLook As Outlook.Application
                Dim MailOutLook As Outlook.MailItem
                Set appOutLook = CreateObject("Outlook.Application")
                Set MailOutLook = appOutLook.CreateItem(olMailItem)
                Set appOutLook = CreateObject("Outlook.Application")
                Set MailOutLook = appOutLook.CreateItem(olMailItem)
     
    If Me.BU_Manager = "Choose here !" Then
        MsgBox "Please choose the BU MANAGER ! "
     
        Else
     
        If Me.BU_Manager = "Pigi" Then
     
            With MailOutLook
                    .To = "contact1@domaine.eu"
                    .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                    .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\\" & Me.id.Value & ".xlsm )"
                    .Send
            End With
            MsgBox "Your message is good sended at contact1 !"
     
        Else
     
            If Me.BU_Manager = "SeAn" Then
     
                With MailOutLook
                        .To = "contact2@domaine.eu"
                        .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                        .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\\" & Me.id.Value & ".xlsm )"
                        .Send
                End With
                MsgBox "Your message is good sended at contact2 !"
     
            Else
     
                If Me.BU_Manager = "JcPa" Then
     
                    With MailOutLook
                            .To = "contact3@domaine.eu"
                            .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                            .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\\" & Me.id.Value & ".xlsm )"
                            .Send
                    End With
                    MsgBox "Your message is good sended at contact3 !"
     
                Else
     
                    If Me.BU_Manager = "Arta" Then
     
                        With MailOutLook
                                .To = "contact4@domaine.eu"
                                .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                                .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\\" & Me.id.Value & ".xlsm )"
                                .Send
                        End With
                        MsgBox "Your message is good sended at Contact4 !"
     
                    Else
     
                        With MailOutLook
                                .To = "contact5@domaine.eu"
                                .Subject = "R.A.P. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                                .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\archives\" & Me.id.Value & ".xlsm )"
                                .Send
                        End With
                        MsgBox "Your message is good sended at Contact5 !"
     
                    End If
                End If
            End If
        End If
     End If
    End Sub

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Par défaut
    Bonjour,
    Prmier point pourquoi instancier deux fois tes objets appOutLook et MailOutLook ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim appOutLook As Outlook.Application
                        Dim MailOutLook As Outlook.MailItem
                        Set appOutLook = CreateObject("Outlook.Application")
                        Set MailOutLook = appOutLook.CreateItem(olMailItem)
                        Set appOutLook = CreateObject("Outlook.Application")
                        Set MailOutLook = appOutLook.CreateItem(olMailItem)
    Une seule création devrait suffire normalement.

    Ensuite tu répètes tyon code autant de fois que tu as des destinataire, le stockage de ton adresse mail dans une variable te permettrait de mieux tenir ton code?

    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
    Dim appOutLook As Outlook.Application, MailOutLook As Outlook.MailItem, [COLOR="YellowGreen"]sMailDest as String[COLOR]
        If Me.BU_Manager = "Pigi" Then
              sMailDest = adressedePigi@domaine.eu
        elseif Me.BU_Manager = ... Then
              sMailDest = adressede...@domaine.eu
        else 
            Msgbox "Le contact ne fait pas parti des contacts autorisés ! Pas d'envoi"
        end if
                        Set appOutLook = CreateObject("Outlook.Application")
                        Set MailOutLook = appOutLook.CreateItem(olMailItem)
                        With MailOutLook
                                .To = sMailDest
                                .Subject = "Form. N°" + Str(id.Value) + " - Status : " + Me.Status.Value
                                .Body = " Ussuer comment : " & Me.Commentaire1.Value & "    ( Clic here for open the document : \\cheminreseau\archives\" & Me.id.Value & ".xlsm )"
                                .Send
                        End With
                        MsgBox "Your message is good sended at " & smaildest & '!"
    Tu peux remplacer la boucle if elseif par un select case si tu préfères.

    Enfin il faut que tu contrôles bien que ton destinataire est bien sélectionné, envoyer un mail sans adresse c'est souvent difficile !

    Par manie, il n'y a jamais de code unrgent, il n'y a que des développeurs en retard !

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/10/2006, 18h06
  2. calculs automatiques dans un formulaire dynamique
    Par renaud26 dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 13/07/2006, 18h13
  3. Réponses: 7
    Dernier message: 11/07/2006, 17h34
  4. Vérifier si mail valide ’@.’ dans un formulaire
    Par Chansonnette dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2006, 14h09
  5. Affichage automatique dans un formulaire
    Par Caroclic dans le forum Access
    Réponses: 1
    Dernier message: 19/09/2005, 16h35

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