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
| Function fNumeroterSerie()
Dim odb As Database
Dim oRst As 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
' Rupture sur le client
If Nz(oRst!REF_TIERS, "") <> stRuptClient Then
lgCompteur = 0
stRuptClient = Nz(oRst!REF_TIERS, "")
stRupture = ""
End If
' Rupture sur le code si nul ou même série
If Nz(oRst.Fields("REF_AUTO_GLOBAL_OLD"), "") <> stRupture Then
stRupture = Nz(oRst.Fields("REF_AUTO_GLOBAL_OLD"), "")
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("REF_AUTO_GLOBAL") = Null _
Else oRst.Fields("REF_AUTO_GLOBAL") = lgCompteur
oRst.Update
oRst.MoveNext
Loop
oRst.Close
Set odb = Nothing
End Function |