OVH Cloud OVH Cloud

Générer un n° automatiquement

1 réponse
Avatar
BLANGENOIS Philippe
Bonjour,
je dois générer dans un champ un n° unique se composant de :
(4) ce chiffre est unique et sera constant
(04) c'est l' année en cours , donc doit changer le 1 janvier 2005
(0001) numérotation qui s'increment e de 1 a chaque fois, mais la ou ca
coince, c'est qu'il doit se remettre a 1 le 1 janvier de chaque année.

mon nombre constituer est donc : 4040001 - 4040002 - etc ....

Merci pour l'aide.

Philippe

1 réponse

Avatar
3stone
Salut,

"BLANGENOIS Philippe"
je dois générer dans un champ un n° unique se composant de :
(4) ce chiffre est unique et sera constant
(04) c'est l' année en cours , donc doit changer le 1 janvier 2005
(0001) numérotation qui s'increment e de 1 a chaque fois, mais la ou ca
coince, c'est qu'il doit se remettre a 1 le 1 janvier de chaque année.



Utilise une fonction comme ci-dessous.

(Pas très recherché... mais bon ;-)


Function CreeNumero(sCle, sTable) As Long
Dim iNum As Integer
Dim lDernier As Long
Dim p1 As String, p2 As String

lDernier = Nz(DMax(sCle, sTable), 0)

If lDernier = 0 Then 'table vide
CreeNumero = Format(Date, "4YY") & "0001"
Else
p1 = Left(lDernier, 3)
iNum = Val(Right(lDernier, 4))

If p1 <> Format(Date, "4YY") Then
p2 = "0001"
Else
p2 = Format(iNum + 1, "0000")
End If

CreeNumero = Val(Format(Date, "4YY") & p2)
End If

End Function



et tu l'appelle de cette facon:
[CléPrimaire] = CreeNumero("[ClePrimaire]","NomTable")

dans l'événement "Sur activation" du formulaire,
après avoir testé si nouvel enregistrement!

Private Sub Form_Current()

If Me.NewRecord = True Then
Me.ID = CreeNumero("ClePrimaire", "NomTable")
End If

End Sub




--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------