У меня есть форма с 3 TextBox
элементами управления: код запаса, количество, номер сертификата.Стандартный код TextBox
настроен на автоматическую фокусировку при загрузке формы.
Я также подключил сканер штрих-кода к своему ПК, так как пользователь хочет иметь возможность сканировать штрих-код назаполните TextBox
или введите данные вручную.
Отсканированные этикетки содержат два штрих-кода.Один - это номер сертификата, а другой - код запаса.
Штрих-код акции имеет префикс «SBC /», а штрих-код сертификата - «C /".
».Когда пользователь сканирует штрих-код, если TextBox
в фокусе является фондовым кодом TextBox
, тогда я хочу выполнить проверку, как показано ниже.
Private Sub txtStockCode_Change()
On Error GoTo errError1
If Len(txtStockCode.Text) >= 5 Then
If bChangeCode Then
If Left(txtStockCode.Text, 2) = "C/" Then
msgbox "You have scanned the certificate barcode; please scan the stock barcode."
txtStockCode.Text = ""
Else
bChangeCode = False
txtStockCode.Text = Replace(txtStockCode.Text, "SBC/", "")
txtStockCode.Text = Replace(txtStockCode.Text, "*", "")
End If
End If
End If
Exit Sub
Допустим, фокус в настоящее время находится накод запаса TextBox
.
Если сканируется штрих-код запаса, должно произойти следующее:
Длина кода запаса больше 5
Осталось 5 символов не = "C /", поэтому был отсканирован правильный код
TextBox
текстовое значение обновлено для удалениявсе * и префикс «SBC /»
Например, «SBC / A12-TR0 *» становится «A12-TRO»
и
Длина номера сертификата превышает 5
Осталось 5 символов do = "C /", поэтому был отсканирован неверный код
MsgBox
пользователю
TextBox
значение сбрасывается на ""
Однако, независимо от того, какой код сканируется в код запаса TextBox
, значение никогда не проверяется.
Например, «SBC / A12-TR0 *» остается как «SBC / A12-TR0 *», а «C / 29760» остается как «C / 29760»
Поскольку код подтверждения являетсято же самое в сертификате TextBox
, тот же шаблон повторяется наоборот.
Почему мои значения не обновляются, или как я могу проверить ввод до того, как _Change
запущен?
РЕДАКТИРОВАТЬ
Я изменил свой код на
Private Sub txtStockCode_Change
If txtStockCode.Text <> "" Then
txtStockCode.Text = Replace(txtStockCode.Text, "SBC/", "")
txtStockCode.Text = Replace(txtStockCode.Text, "*", "")
End If
End Sub
Но он по-прежнему отображает префикс SBC /, но удаляет два * символа (вначало и конец штрих-кода, который требуется сканеру для считывания штрих-кода)