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
| Public Sub UpdateX()
'Déclaration des variables
Dim Db As dao.Database
Dim r As dao.Recordset
Dim NumChqEncaisse As String
Dim MontantChequeEncaisse As Variant
Dim MontantMouvement As Variant
' excecution du code
Set Db = CurrentDb
Set r = Db.OpenRecordset("Cheques") 'Une source peut être une le nom d'une table, d'une requête ou du code SQL.
' Attribution de la varibale
Num = r![NumChq] 'Renvoi le numéro du chèque
NumChqEncaisse = DFirst("NumCheque", "Cheque", "[ChqEncaisse]=True") & "" 'le & "" évite d'avoir à gérer les Nuls si il n'y a pas de chêque encaissé.
MontantChequeEncaisse = DFirst("MontantChq", "Cheques", "NumChq=""" & NumChqEncaisse & """")
MontantMouvement = DSum("MontantMvt", "Mouvements", "NumChq=""" & NumChqEncaisse & """")
'S'assure que le montant est un réel double
If IsNull(MontantChequeEncaisse) Then
MontantChequeEncaisse = CDbl(0)
Else
MontantChequeEncaisse = CDbl(MontantChequeEncaisse)
End If
'S'assure que le montant est un réel double
If IsNull(MontantMouvement) Then
MontantChequeEncaisse = CDbl(0)
Else
MontantMouvement = CDbl(MontantMouvement)
End If
If vbYes = MsgBox("Voullez-vous vraiment mettre les données à jour du" & Num & "?", vbQuestion + vbYesNo + vbDefaultButton2) _
Then
'Ici appeler le code de mise à jour.
' Le changement se fait au niveau de la colonne en attente dans la table Mouvement
'On relie le numéro de chèque de la table chèque avec la table mouvement
'Le changement s'effectue à condition que la case cheque encaisse soit coche'
Db.Execute ("Update Cheques INNER JOIN (Mouvements) ON (Cheques.NumChq)=(Mouvements.NumChq)" _
& " SET Mouvements.EnAttente=No " _
& " WHERE Cheques.ChqEncaisse=Yes;")
If MontantMouvement <> MontantChequeEncaisse Then
Call mgsbox("Le montant du chèque est différent du montant des mouvements.", vbExclamation)
Else
Call mgsbox("Le montant du chèque est égal au montant des mouvements.", vbInformation)
End If
Db.Close
End If
End Sub |