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
|
Function sendPersonalizedReportByMail(stRepName As String, RL As String, nivVN As String)
' déclarations
Dim db As Database
Dim rst As Recordset
Dim fld As Field
Dim RsSql, IndFRSql, IndNLSql, GpSql, updTblSql As String
Dim strBody As String
Dim id, vueRapport, respons As Integer
' Query pour la construction du recordset comprenant les Gp ou Ind destinataires
'RsSql = "SELECT [Réseau P].CodePBL, [Réseau P].email, [Réseau P].[Langue courrier], [Réseau P].Groupe, [Réseau P].[Niveau VN], [Réseau P].[Appellation commerciale] FROM [Réseau P] WHERE ((([Réseau P].[Langue courrier])='" & RL & "') AND (([Réseau P].[Niveau VN])='" & nivVN & "')) ORDER BY [Réseau P].Groupe;"
RsSql = "SELECT [Réseau P].CodePBL, [Groupe Réseau].e_mail, [Réseau P].[Langue courrier], [Réseau P].Groupe, [Réseau P].[Niveau VN], [Réseau P].[Appellation commerciale] FROM [Réseau P] INNER JOIN [Groupe Réseau] ON [Réseau P].CodePBL = [Groupe Réseau].CodePBL WHERE ((([Réseau P].[Langue courrier])='" & RL & "') AND (([Réseau P].[Niveau VN])='" & nivVN & "')) ORDER BY [Réseau P].Groupe;"
' ====================================
' == Traitement ==
' ====================================
' Ouverture de la base de données
Set db = CurrentDb
' Ouverture du recordset
Set rst = db.OpenRecordset(RsSql, dbOpenForwardOnly, dbReadOnly)
' Introduction du body
strBody = Forms!Marges!Text95
' Visualisation du raport
vueRapport = MsgBox("Voulez-vous visualiser les rapports" & Chr(13) & "avant l'envoi ?", vbYesNo, "Question")
' Visualisation et/ou envoi de l'eMail
respons = MsgBox("Voulez-vous visualiser les eMail?", vbYesNo, "Question")
If (respons = 6) Then
visu = True
Else
visu = False
End If
With rst
While Not rst.EOF
' déclaration des query de mise à jour des tables temporaires
updTblIndSql = "SELECT [Réseau P].[Langue courrier], [Réseau P].Groupe, [Réseau P].email, [Réseau P].[Niveau VN], [Réseau P].CodePBL, [Réseau P].[Appellation commerciale], [Réseau P].[Adresse physique], [Réseau P].[Adr Phy - Localité], [Réseau P].ZONEVNMANAGER INTO UpdTempIndMail FROM [Réseau P] INNER JOIN [Edition groupe test] ON [Réseau P].CodePBL = [Edition groupe test].CodePBL WHERE ((([Réseau P].[Langue courrier])='" & RL & "') AND (([Réseau P].[Niveau VN])='" & nivVN & "') AND (([Réseau P].CodePBL)='" & rst(0) & "')) ORDER BY [Réseau P].Groupe;"
updTblGpSql = ""
If (isGroup) Then
updTblSql = updTblGpSql
Else
updTblSql = updTblIndSql
End If
' mise à jour de la table temporaire
DoCmd.SetWarnings (False)
DoCmd.RunSQL updTblSql
DoCmd.SetWarnings (True)
' affichage des rapports
If (vueRapport = 6) Then
DoCmd.OpenReport stRepName, acViewPreview, , , acDialog
End If
' envoi du mail
DoCmd.SendObject acSendReport, stRepName, "SnapshotFormat(*.snp)", rst(1), "", "", "OVOS", strBody, visu, ""
' itération suivante
rst.MoveNext
Wend
End With
rst.Close
End Function |
Partager