#visual-studio #vb6
#visual-studio #vb6
Вопрос:
Я сталкиваюсь с этой ошибкой в моей программе сканирования, где она сканирует серийный номер и проверяет 5 цифр из позиции 12 на наличие запущенных номеров. Однако, когда число в позиции 12 равно 9, это показывает ошибку времени выполнения. Я не уверен, что является причиной этого. Я надеюсь, что кто-нибудь может помочь. Спасибо. Ошибка возникает, когда я сканирую номер, например Z121564182690072 C, он примет затем ввод, но когда я сканирую второй ввод, Z121564182690073 C, он покажет ошибку. Я полагаю, что проблема возникает из-за этого кода.
Case -1 'Scanned UUT is 1 more than a number in the list
'if sample size is more than half of the lot size then skip checking
If (CLng(Me.lblRequiredQty.Caption) / CLng(Me.txtLotQty.Text)) < (2 / 3) Then
If CLng(Me.lblRequiredQty.Caption) > 10 Then
If i < Me.lstUnit.ListCount - 1 Then
If CLng(CLng(Mid(Me.lstUnit.List(i 1), 12, 5)) - CLng(Mid(Me.lstUnit.List(i), 12, 5))) = 1 Then
Me.lstUnit.Selected(i) = True
A = MsgBox("This unit serial number is in sequence with " amp; _
Me.lstUnit.List(i) amp; " and " amp; Me.lstUnit.List(i 1) amp; "!", vbExclamation, "Error!!!")
Комментарии:
1. Вы должны включить свой полный код этого подраздела и указать, в какой строке произошла ошибка. Из этого частичного кода я чувствую, что есть лучший способ достичь вашей цели с помощью более простой логики. Также уточните, является ли это VBA (в продуктах office) или Visual Studio (здесь это маловероятно).
2. Привет, большое спасибо за ответ. Я могу включить полный код. Я запускаю его с Visual Studio, поскольку это тот, который у меня есть прямо сейчас. Но мне сказали, что это было скомпилировано с Visual Basic 2008 Express Edition. Я могу предоставить полный код.
3. Я только что узнал, что помимо «9», символ «R» в 12-й позиции также показывает эту ошибку: (
4. последовательность и i объявляются как целые числа. Измените их на длинные. например
Dim i as long, sequence as long
5. В дополнение к объявлению переменных как
Long
, число, начинающееся с позиции 12, равно ‘90072’, котороеCInt
не удастся преобразовать. Попробуйте использоватьCLng
вместо этого.