OVH Cloud OVH Cloud

Incrémentation

7 réponses
Avatar
Bernard Mourrut
Bonjour,
Dans ma BD, je voudrai incrémenter une clé alphanumérique du type 05L111
pour chaque nouvel enregistrement sur un formulaire. Y-a-t'il une solution
simple? Ber

7 réponses

Avatar
3stone
Salut,

"Bernard Mourrut"
| Dans ma BD, je voudrai incrémenter une clé alphanumérique du type 05L111
| pour chaque nouvel enregistrement sur un formulaire. Y-a-t'il une solution
| simple? Ber


Simple...

Il faudra de toute facon "sausissonner" la clé pour pouvoir incrémenter
la partie souhaitée...


Faudra en dire plus !


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Bernard Mourrut
La clé se décompose ainsi :
05 est l'année en cours
D ou L une lettre code de dossier
001 à 999 la partie à incrémenter
Aujourd'hui, je clique sur "Nouvel enregistrement", la partie 05L est
formatée, mais je dois entrer les 3 chiffres dont je voudrais automatiser
l'incrémentation.
A+ Ber
Avatar
3stone
Salut,

"Bernard Mourrut"
| La clé se décompose ainsi :
| 05 est l'année en cours
| D ou L une lettre code de dossier
| 001 à 999 la partie à incrémenter
| Aujourd'hui, je clique sur "Nouvel enregistrement", la partie 05L est
| formatée, mais je dois entrer les 3 chiffres dont je voudrais automatiser
| l'incrémentation.


Oui, mais au changement d'année, la numérotation redémarre à zéro ?
et existe t-il le numéro "05L001" et aussi "05D001" ?

Ou bien la numérotation est indépendante des 3 caractères de gauche ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
le méruvien
bonjour, a mon avis, directement c'est pas possible puisque c'est du texte,
mais tu peut le faire séparément, c'est a dire tu fait un champ independant
ex: numéro qui sera egale a:
champ1 & champ2
champ1 étant (05L)
champ2 étant un champ numéro auto


"Bernard Mourrut" a écrit dans le message de
news: 437cf7a4$0$21276$
Bonjour,
Dans ma BD, je voudrai incrémenter une clé alphanumérique du type 05L111
pour chaque nouvel enregistrement sur un formulaire. Y-a-t'il une solution
simple? Ber



Avatar
Bernard Mourrut
Non chaque année je reformate les 2 premiers chiffres, ce n'est pas trop
astreignant. A+ Ber
Avatar
3stone
Salut,

"Bernard Mourrut"
| Non chaque année je reformate les 2 premiers chiffres, ce n'est pas trop
| astreignant. A+ Ber



Appelle la fonction ci-dessous pour remplir ton champ...
Elle ajoute 1 à la plus grande valeur de l'année ou
redémarre à 001 au changement d'année.

TaZoneDeTexte = fnSuivant("D","NomChamp","NomTable")

Le code "D" ou "L" pourrait être sélectionner dans une liste ou autre.


Function fnSuivant(sCode As String, sChamp As String, sTable As String) As String
Dim db As DAO.Database, rs As DAO.Recordset
Dim sYear As String, sSQL As String

sYear = Format(Date, "YY")
sSQL = "Select Mid([" & sChamp & "],4) As Num From [" _
& sTable & "] Where Left([" & sChamp & "],2)=" & sYear _
& " Order By Mid(" & sChamp & ", 4);"

Set db = CurrentDb
Set rs = db.OpenRecordset(sSQL)

If rs.EOF Then
fnSuivant = sYear & sCode & "001"
Else
rs.MoveLast
fnSuivant = sYear & sCode & Format(Val(rs!Num) + 1, "000")
End If

rs.Close
db.Close
Set rs = Nothing
Set db = Nothing

End Function


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Bernard Mourrut
Merci 3Stone, je vais essayer. Ber