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
Partager