Cossack Geschrieben 15. März 2006 Geschrieben 15. März 2006 Hallo Ich erstelle gerade eine DB für unsere Rechner in der Arbeit. Die untere Funktion dient dazu aus den Seriennummern der Rechner die Inventarnummer dazu zu generieren. Eine Seriennummer besteht immer aus folgendem Format XXXX000000. Also die ersten 2 oder 4 Stellen (je nach Alter des PCs) bestehen aus Buchstaben, die darauffolgenden 0en sind Ziffern. Leider schneidet mir der untere Quellcode automatisch die ersten beiden Ziffern ab. Ich hab keine Ahnung wieso. SrNummer = [SerienNr_Rechner] SrLaenge = Len(SrNummer) TempSrNr = SrNummer For i = 1 To SrLaenge TempStr = Left(TempSrNr, 1) If IsNumeric(TempStr) <> False Then InvNummer = TempSrNr Else TempSrNr = Mid(TempSrNr, i + 1) End If Next i [Inv_Nr] = InvNummer Zitieren
russkij Geschrieben 15. März 2006 Geschrieben 15. März 2006 also bei mir bleiben dier ersten ziffern da. sind es "0" die weggeschnitten werden? wenn ja, gib dem mal ne andere zahl zum testen, also net XXXX00... sondern XXXX10... ich denke, dass die datenbank die "0" am anfang der zahl selbst entfernt. gruss Zitieren
Cossack Geschrieben 15. März 2006 Autor Geschrieben 15. März 2006 Ich lese zuerst die Seriennummer aus der DB aus und verarbeitet sie dann später weiter. Egal ob ich eine Seriennummer wie YBBB003344 oder YBBB334455 eingebe. Er schneidet die ersten beiden Ziffern nach den Buchstaben ab. Habe gerade festgestellt dass er die ersten drei Durchgänge immer ganz normal arbeitet, d.h. er schneidet nacheinander jeweils einen Buchstaben ab. Erst ab dem 4. Durchgang schneidet er gleich 3 Zeichen auf einmal ab: 1. YBBB334455 -> BBB334455 2. BBB334455 -> BB334455 3. BB334455 -> B334455 4. B334455 -> 4455 Zitieren
Klotzkopp Geschrieben 15. März 2006 Geschrieben 15. März 2006 Das beschriebene Verhalten passt aber nicht zu deinem Code. Diese Zeile TempSrNr = Mid(TempSrNr, i + 1) bewirkt, dass du bei jedem Durchlauf vorne ein Zeichen mehr abschneidest, d.h. beim ersten Durchlauf das erste, danach die ersten beiden usw. Das fällt nicht auf, wenn die Anzahl der führenden Buchstaben 1, 3 oder 6 ist. Aber in allen anderen Fällen schneidest du Zahlen mit ab. Um es kurz zu machen: Das muss entweder TempSrNr = Mid(SrNummer, i + 1) heißen, oder TempSrNr = Mid(TempSrNr , 2) Zitieren
Cossack Geschrieben 15. März 2006 Autor Geschrieben 15. März 2006 OK thx Habe jetzt den Wert von i+1 auf 2 geändert und jetzt klappts. War a Denkfehler von mir. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.