zarkys
Messages postés1Date d'inscriptionlundi 23 juin 2003StatutMembreDernière intervention 3 août 2005
-
3 août 2005 à 23:05
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 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.
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 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