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
| Function fNumeroterSerie()
Dim odb As DAO.Database
Dim oRst As DAO.Recordset
Dim stRupture As String, stRuptClient As String
Dim lgCompteur As Long
Set odb = CurrentDb
Set oRst = odb.OpenRecordset("RQ_MAJ_REF_AUTO_GLOBAL", dbOpenDynaset)
stRuptClient = ""
lgCompteur = 0
Do Until oRst.EOF
If Nz(oRst!NUM_TIERS, "") <> stRuptClient Then
' rupture sur le client
lgCompteur = 0
stRuptClient = Nz(oRst!NUM_TIERS, "")
stRupture = ""
End If
' Rupture sur le code si nul ou même série
If Nz(oRst.Fields("CUMMULABLE_OLD"), "") <> stRupture Then
stRupture = Nz(oRst.Fields("CUMMULABLE_OLD"), "")
If oRst.Fields("NbOccur") > 1 Then lgCompteur = lgCompteur + 1
End If
oRst.Edit
' si le nombre d'occurences est égal à 1 on vide le champ sinon on met la valeur du compteur du groupe
If oRst.Fields("NbOccur") = 1 Then oRst.Fields("CUMMULABLE") = Null _
Else: oRst.Fields("CUMMULABLE") = lgCompteur
oRst.Update
oRst.MoveNext
Loop
oRst.Close
Set odb = Nothing
End Function |