Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2011, 10h03   #1
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 63
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : juillet 2011
Messages : 63
Points : 27
Points : 27
Par défaut Saisies de données pour un email

Bonjour,

Dans le but d'envoyer diverse mise à jour par mail, je cherche à saisir certains champs d'un enregistrement pour les mettre dans un mail sans mis en forme particulière (retour à la ligne + "intitulé:"). Cette action ne me pose pas de problème.

Cependant, les données apparaissant dans mon mail ne sont pas les bonnes.

Tentative d'explication:

Pour la sauvegarde, j'ai positionné des flags pour savoir si un champ avait changé comme ceci:

Code :
1
2
3
4
5
Private Sub Fct_Dirty(Cancel As Integer)
    bModif = True
End Sub
 
etc....
Voulant sauvegarder l'enregistrement existant, je me positionne donc dans le BeforeUpdate de mon formulaire afin de ne pas Archiver l'enregistrement fraichement modifié mais celui "avant modifications":

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Form_BeforeUpdate(Cancel As Integer)
On Error GoTo err
 
    Dim StrSQL As String
 
    SstrSQL = Id.Value
    MsgBox SstrSQL
 
    StrSQL = "INSERT INTO T_Historique ( ..., Fct, ... ) " & _
            " SELECT ..., T_Gestion.Fct, ... " & _
            " FROM T_Gestion" & _
            " WHERE ((T_Gestion.Id)= " & Id.Value & ");"
 
    If bModif = True Then
        DoCmd.RunSQL StrSQL
    End If
 
err:
 
End Sub
Le mail, quant à lui doit contenir les nouvelles informations concernant mon enregistrement. Actuellement j'utilise cette structure qui ne fonctionne pas

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Form_AfterUpdate()
    Dim Reponse
    If bModif = True Then
        Reponse = MsgBox("Voulez-vous prévenir vos contacts de ce changement ?", vbYesNo, "Contact")
 
        If Reponse = vbYes Then
            DoCmd.OpenForm "frmMail"
            Form_frmMail.cmbDestinataires.SetFocus
        End If
    End If
 
    bModif = False
End Sub
Je n'arrive pas à récupérer correctement mes informations:

Code :
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
Private Sub btnSendMail_Click()
'    On Error GoTo err
 
    MsgBox Form_sfrmGestion.SstrSQL
    Dim Sujet As String
    Dim Corps As String
 
    Sujet = "Mise à jour"
    Corps = "Bonjour,"
    Corps = Corps & Chr(13) & Chr(10)
    Corps = Corps & Chr(13) & Chr(10)
 
    Corps = Corps & "N° de série: " & Form_sfrmGestion.N_Serie & 
    Corps = Corps & Chr(13) & Chr(10)
 
    If Me.chkFct Then
        Corps = Corps & "Fonction: " & "Docmd.RunSQL SELECT T_Gestion.Fct FROM T_Gestion WHERE ((T_Gestion.Id)= " & Form_sfrmGestion.SstrSQL & ");"
        Corps = Corps & Chr(13) & Chr(10)
    End If
 
    'MsgBox Corps
 
 
    If Me.chkMailNumES Then
        Corps = Corps & "Numéro ES: "
        Corps = Corps & Chr(13) & Chr(10)
    End If
    If Me.chkMailEmplacement Then
        Corps = Corps & "Emplacement: " & Form_sfrmGestion.Emplacement.Value
        Corps = Corps & Chr(13) & Chr(10)
    End If
 
        Corps = Corps & Chr(13) & Chr(10)
    Corps = Corps & Chr(13) & Chr(10)
    Corps = Corps & "Cordialement,"
 
    Call CreateEmail(Sujet, Corps)
 
err:
'    'Affiche un message suivant l'erreur
    Select Case err.Number
        Case 94: MsgBox "Veuillez remplir tous les champs"
    End Select
End Sub
La requête est un test, je me doute bien qu'elle n'affiche pas le résultat directement

La fonction mail ne pose aucun soucis, aucun soucis d'envoie, juste de saisie de données. Avec mon code, ça m'envoie des données mais celles se trouvant dans l'enregistrement qui "prend" le focus, pas les informations de l'enregistrement modifé

Merci par avance
facedeharicot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h03.


 
 
 
 
Partenaires

Hébergement Web