Aide sur code

zarkys Messages postés 1 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 3 août 2005 - 3 août 2005 à 23:05
Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 - 5 août 2005 à 16:50
je debute sous vb et je voudrais faire une appli avec des identifiants bien spécifique pour mes formulaires.
ex : "TR/2005/001" la premiere partie correspondant au nom de ma table, la seconde à l'année en cours et la derniere est le numéro qui doit s'incrementer automatiquement. Ce numero doit revenir à 001 chaque 1er Janvier.
quelqu'un pourrait t'il m'aider.
Merci de vos réponses.

1 réponse

Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
5 août 2005 à 16:50
J'ai moi meme eu ce problème dans mon application pour générer des numéro automatique de commandes. Voici un bout du code que j'ai écrit en espérant que cela pourra t'aider

Dim db As Database, rcd As dao.Recordset, record As dao.Recordset, Num As String, OldMax As String
Dim stDocName As String, Param As String, NumMax As Long, Numerotation As String, DefYear As String, thisYear

Param = "ce que tu veut"
' ** Ouverture d'un nouveau Recordset ne contenant que le numéro de demande Maximum de la table tblSuivisFact
Set record = db.OpenRecordset("SELECT Max([tblSuivisFact]![NumDem]) AS MaxNum FROM tblSuivisFact", dbOpenDynaset)
OldMax = record.Fields("MaxNum").Value
' ** Détermine la date (Année) du numéro de dossier récupéré ci-dessus
DefYear = (Mid(OldMax, ((InStrRev(OldMax, "/", ((InStrRev(OldMax, "/", -1)) - 1))) + 1), 4))
' ** Comparaison entre la date du dossier maximun et la date en cours
' ** Si les deux dates sont identiques, continue à incrémenter la série sur la même année
thisYear = Year(Date)
If DefYear = thisYear Then
NumMax = Mid(OldMax, (InStrRev(OldMax, "-", -1) + 1)) + 1
Num = Param & "/" & thisYear & "/" & NumMax
Me.NumDem = Num
Me.NumDem.SetFocus
Me.NumGen = -1
Me.CmdNewNumber.Visible = False
Me.Refresh
End If
' ** Si la date du numéro de demande Maximum de la table tblSuivisFact et inférieur à l'année en cours,
' ** Recomance une nouvelle numérotation sur l'année en cours
If DefYear < thisYear Then
Num = Param & "/" & thisYear & "/" & "1"
Me.NumDem = Num
Me.NumDem.SetFocus
Me.NumGen = -1
Me.CmdNewNumber.Visible = False
Me.Refresh
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
End If
' ** Si la date du numéro de demande Maximum de la table tblSuivisFact et supérieur à l'année en cours,
' ** Recomance une nouvelle numérotation sur l'année en cours
If DefYear > thisYear Then
NumMax = Mid(OldMax, (InStrRev(OldMax, "/", -1) + 1)) + 1
Num = Param & "/" & DefYear & "-" & NumMax
Me.NumDem = Num
Me.NumDem.SetFocus
Me.NumGen = -1
Me.CmdNewNumber.Visible = False
End If
End If
en espérant que cela te sera utile :-p
0
Rejoignez-nous