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 ....
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 -----------------------------
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
-----------------------------
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 -----------------------------