У меня есть мой код ниже, чтобы увидеть, создает ли пользователь 4-значный пин-код, если они не заполняют пин-код, тогда пин-код будет настроен как пустая строка. Ничего страшного.
Я тестирую это в операторе if
ниже, но он возвращает недопустимое использование нулевого исключения:
Dim U As String
If Me.txtUnlock = Null Then
U = 0
Else
U = Me.txtUnlock
End If
If IsNumeric(U) = False Then
MsgBox "Unlock pin only accepts numbers only.", , "Retail unlock"
Me.txtUnlock = Null
Me.txtUnlock.SetFocus
Exit Sub
End If
If Len(U) <> 4 Then
MsgBox "Retail unlock must be four digits long.", , "Retail unlock"
Me.txtUnlock.SetFocus
Exit Sub
End If
Затем я проверяю, пуста ли булавка ниже:
If IsNull(Me.txtUnlock) Then
check = check + 1
UL = ""
Else
UL = Me.txtUnlock
End If
If Me.txtUnlock = Null Then
Этого ты не можешь сделать. Попробуйте с:
If IsNull(Me!txtUnlock.Value) Then
Рассмотрим этот оптимизированный код с использованием функции Новая Зеландия:
Dim U As String
U = NZ(Me.txtUnlock,0)
Dim fail as Boolean
If Not IsNumeric(U) Then
MsgBox "Unlock pin only accepts numbers only.", , "Retail unlock"
fail = true
ElseIf Len(U) <> 4 Then
MsgBox "Retail unlock must be four digits long.", , "Retail unlock"
fail = true
End If
If fail then
With Me.txtUnlock
.value = vbNullString
.SetFocus
End With
End If
@Cookies добавляют условие для 0 в качестве первого условия If u = 0 Then ...
Извините, я начал писать комментарий и нажал Enter, который сохранил его. Что делать, если я не хочу, чтобы он возвращал 0. По какой-то причине, когда он возвращает ноль, он регистрируется как числовое значение и продолжает показывать «Розничная разблокировка должна состоять из 4 цифр.