-> Hier kostenlos registrieren
Hallo zusammen,
also hier ist das Stück von dem Code:
Es gibt ein Batchnummer mit dem Format XXXXXX
Es muss das letzte Symbol abgelesen werden und um eins erhöht werden.
Das letzte Symbol darf in dem Bereich 1..9 oder A..Z liegen.
Benutzt wird Chr Tabelle https://www.vbsedit.com/html/c60e2712-20e6-40f2-8fe2-cfb74ca6bca1.asp
Der Vergleich funktioniert aber nicht, der Compiler springt immer in andere Schleife, obwohl die Zahl in einem anderen Bereich liegt.
Was kann man hier machen?
Ich habe schon die Reihenfolge geändert, aber das funktioniert nur teilweise. Heißt, dann werden die anderen Schleifen nicht durchgelaufen.
Gibt es eine sicherere Methode, mit der man den Vergleich durchführen könnte?
also hier ist das Stück von dem Code:
Es gibt ein Batchnummer mit dem Format XXXXXX
Es muss das letzte Symbol abgelesen werden und um eins erhöht werden.
Das letzte Symbol darf in dem Bereich 1..9 oder A..Z liegen.
Benutzt wird Chr Tabelle https://www.vbsedit.com/html/c60e2712-20e6-40f2-8fe2-cfb74ca6bca1.asp
Der Vergleich funktioniert aber nicht, der Compiler springt immer in andere Schleife, obwohl die Zahl in einem anderen Bereich liegt.
Was kann man hier machen?
Ich habe schon die Reihenfolge geändert, aber das funktioniert nur teilweise. Heißt, dann werden die anderen Schleifen nicht durchgelaufen.
Gibt es eine sicherere Methode, mit der man den Vergleich durchführen könnte?
Code:
If HMIRuntime.Tags("noCountUp_batchnumber").Read = 1 Then
VarBatch = HMIRuntime.Tags("batchnumber").Read
VarLength = Len(VarBatch)
VarTemp1 = Right(VarBatch,VarLength-5)
AscVarTemp = Asc(VarTemp1)
IntTemp = Int(AscVarTemp) [B]' Hier habe zusätzlich in INT umgewandelt, da dachte dass an dem Problem liegt[/B]
If IntTemp=57 Then
IntTemp = 65
VarTemp1 = Chr(IntTemp)
Elseif (IntTemp>=1 & IntTemp<49) Or (IntTemp>57 & IntTemp<65) Or IntTemp>=90 Then [B]' Hier springt der immer, egal was ich eingegeben habe[/B]
MsgBox "The Batch number is in wrong area! " & " VarTemp = " & VarTemp1 & " IntVarTemp = " & IntTemp
Exit Sub
Elseif IntTemp>=65 & IntTemp<90 Then
IntTemp = IntTemp+1
VarTemp1 = Chr(IntTemp)
Elseif IntTemp>=49 & IntTemp<57 Then
MsgBox "ASCVarTemp zwischen 49 und 57 " & IntTemp
IntTemp = IntTemp+1
VarTemp1 = Chr(IntTemp)
End If
VarBatch = Mid(VarBatch,1,5)& VarTemp1
HMIRuntime.Tags("batchnumber").Write VarBatch
Else
MsgBox "noCountUp = 0"
End If