Bonjour a tous,

Voila, je suis actuellement en train de travailler sur un formulaire sous ACCESS 2002. Et j’ai un petit souci. Etant donné que je n’y connais pas grand-chose en VBA je me retrouve bloqué avec une fonction toute bête…
En effet quand l’utilisateur appui sur un bouton, l’application envoi un mail (la mon ami « rechercher sur le forum » ma trouvé cela) seulement je veux que se mail soit une variable qui en fonction de la personne qui appui sur le bouton, envoi à son supérieur le mail. Vous m’avez suivit ? J’ai créé la requête qui permet de trouver le supérieur hiérarchique que j’ai nommé « Mailchef » et voici le code que j’ai trouvé pour le mail :

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 btnchef_Click()
On Error GoTo Err_btnchef_Click
 
    Dim MonOutlook As Object
    Dim MonMessage As Object
 
 
  Set MonOutlook = CreateObject("Outlook.Application")
  Set MonMessage = MonOutlook.createitem(0)
  MonMessage.To = ""
  MonMessage.Subject = ""
  MonMessage.body = ""
  MonMessage.Send
  Set MonOutlook = Nothing
 
Exit_btnchef_Click:
    Exit Sub
 
Err_btnchef_Click:
    MsgBox Err.Description
    Resume Exit_btnchef_Click
 
End Sub

Je cherche donc à mettre dans message.To une variable qui est remplie par ma requête. (La requête ne retourne qu’une et une seul personne).
Je tiens à signaler que j’ai déjà cherché sur le forum mais il met encore difficile de tout comprendre, il me semble que se qu’il me manque tiens en à peine deux phase mais mes tentatives on toute échoués donc soit c’est plus compliqué soit sa viens de moi… c’est pourquoi je vous demande un coup de pouce (pas directement la réponse, sinon ce n’est pas amusant

Bonne journée
Judit

Edit: Réponse au problème:

Voici le code qui envoi un mail à la personne qui est sont chef de service
(remarque: le corp et le titre du message sont aussi chercher dans la base de données permettant ainsi un envoi de mail automatique mais don le titre et le corp peuvent être changé
)

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
Option Compare Database
Option Explicit
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
 
Function fOSUserName() As String
    ' Retourne le nom d'usager fourni lors du branchement au réseau.
    Dim lngLen As Long, lngX As Long
    Dim strUserName As String
     strUserName = String$(254, 0)
        lngLen = 255
        lngX = apiGetUserName(strUserName, lngLen)
     If lngX <> 0 Then
        fOSUserName = left$(strUserName, lngLen - 1)
     Else
            fOSUserName = ""
      End If
End Function
 
Private Sub btnchef_Click()
On Error GoTo Err_btnchef_Click
 
 'déclaration
    Dim MonOutlook As Object
    Dim MonMessage As Object
    Dim strUserWindows As String
    Dim varNumChef As Variant
    Dim varEmailSuperieur As Variant
    Dim varSujet As Variant
    Dim varCorp As Variant
 
'utilisateur courant
strUserWindows = Environ("UserName")
 
'définire qui est le chef de service pour l'utilisateur windows
varNumChef = DLookup("Numchefservice", "Employe", "Id_windowsEmp='" & strUserWindows & "'")
If IsNull(varNumChef) Then
   MsgBox "Pas d'employé trouvé pour l'identifiant Windows"
   Exit Sub
End If
 
 'trouve l'adresse mail correspondant au chef de service
varEmailSuperieur = DLookup("mailchef", "ChefService", "NumChef=" & varNumChef)
If IsNull(varEmailSuperieur) Then
   MsgBox "Adresse email non trouvée"
   Exit Sub
End If
 
'definie se qui doit etre mis dans le mail (titre et corp)
varSujet = DLookup("Libellétitre", "TitreMessage", "NumTitre=1")
varCorp = DLookup("libellécorp", "corpmessage", "numcorp=1")
 
'Message en cas de mail non trouvé
If IsNull(varEmailSuperieur) Then
   MsgBox "Adresse email non trouvée"
   Exit Sub
End If
 
'envoi du mail
            Set MonOutlook = CreateObject("Outlook.Application")
            Set MonMessage = MonOutlook.createitem(0)
                MonMessage.To = varEmailSuperieur
                MonMessage.Subject = varSujet
                MonMessage.body = varCorp
                MonMessage.Send
            Set MonOutlook = Nothing
 
 
Exit_btnchef_Click:
    Exit Sub
 
Err_btnchef_Click:
    MsgBox Err.Description
    Resume Exit_btnchef_Click
 
End Sub