Correcion de code
-
mardi 26 juin 2012 19:19
Bonjour à tous !
Je développe sur VB.Net 2005, sous Windows Xp pro .
Mon code a pour objet de créer des identifiants.
Un identifiant se compose par "12ID0007"
Ce que je désire c'est de faire évoluer cet identifiant à partir des caractères situés à droite.
Je m'explique, les 4 premiers caractères sont fixes, mais les 4 derniers doivent évoluer.
c'est à dire je passe de 0007 à 0008. Dans mon code ça passe assez bien, sauf qu'arriver au rang 13, la chaine de caractère se transforme en "0013", les 4 premiers caractères disparaissent.
Pourrai-je avoir un coup de pouce !
Mon code:
Sub NouveauIdentifiant()
varAnnee = Today.Year
varAnnee2 = Str(varAnnee - 2000)
cDernierEnsg = nbr.ToString("D4")
TextBox1.Text = varAnnee2 & "ID" & cDernierEnsg
contenu1 = TextBox1.Text
cDernierEnsg = Mid(contenu1, 6, 4)
nDernierNumEnsg = Val(cDernierEnsg)
nDernierNumEnsg += 1
contenu2 = nDernierNumEnsg.ToString("D4")
contenu3 = varAnnee2 & "ID" & contenu2
If (Val(cDernierEnsg) < Val(contenu3)) Then
cDernierEnsg = contenu3
End If
TextBox2.Text = cDernierEnsg
End Sub
Toutes les réponses
-
mercredi 27 juin 2012 17:11
Bonjour,
Il ya plusieurs problèmes dans ton code :
1) Le code est compliqué. Tu constitues un premier ID, puis tu l'attribues à TextBox1, puis tu le relis, tu ajoutes 1, puis tu refais un second ID, etc... c'est compliqué, alors qu'en fait le programme est simple.
2) Tu mélanges tout dans la même procédure. Il est bien plus simple de séparer d'une part la gestion des TextBox et d'autre part la création d'un ID.
3) Tu utilises des fonctions VisualBasic qui sont dépassées
4) Tu testes (pourquoi ?) deux valeurs pour pouvoir charger TextBox2. Du coup, à partir de 13 (13 > 12), ta textbox n'est plus chargée !
Voici un exemple.
Private Sub NouvelIdentifiant() Dim nb As Integer = 13 TextBox2.Text = AttribueID(nb + 1) End Sub
Private Function AttribueID(nb As Integer) As String Dim NoAnnée As Integer = DateTime.Now.Year - 2000 Return String.Format("{0:D2}ID{1:D4}", NoAnnée, nb) End Function
- Proposé comme réponse TroxsaEditor jeudi 28 juin 2012 20:45
- Marqué comme réponse Florin CiucaMicrosoft Contingent Staff, Owner mardi 3 juillet 2012 09:59
-
lundi 2 juillet 2012 21:10
Bonsoir Syqrien !
merci pour les remarques .
je vais tester le code.
Thibaut MOUELE
-
jeudi 12 juillet 2012 16:10

