BeforeUpdate Access VBA в поле формы можно ввести только номер - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть форма, где я хочу заполнить либо Актив, либо Местоположение, и Супервайзера, или Руководителя, или Команду, или Рабочую группу, или Команду Рабочей группы.У меня есть код, и он работает, но он позволяет только вводить числа в эти поля.Я хочу иметь возможность вводить цифры и буквы в эти поля.

 Private Sub Form_BeforeUpdate(Cancel As Integer)


 If IsNull(Form_frmAddPM.Asset Or Form_frmAddPM.Location) Then
    MsgBox "Please enter a value in an asset or location."
    Cancel = True
  End If


 If IsNull(Form_frmAddPM.Supervisor Or Form_frmAddPM.Lead Or 
    Form_frmAddPM.Crew Or Form_frmAddPM.Work_Group Or 
     Form_frmAddPM.Crew_Work_Group) Then
     MsgBox "Please enter value in Supervisor, Lead, Crew, Work Group, or 
     Crew 
        Work Group."
        Cancel = True

      End If

End Sub

Я пытался изменить целое число на разные типы.С кодом выше, когда я пытаюсь ввести буквы в форму, появляется ошибка типа несоответствия.

Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 21 сентября 2018

Вы используете побитовый оператор OR, который требует, чтобы оба значения, на которых вы его используете, были целыми числами (см. документы , VB.Net, но в VBA работает одинаково)

Вместо этого вы должны проверить для каждого поля, является ли оно пустым отдельно:

Private Sub Form_BeforeUpdate(Cancel As Integer)


 If IsNull(Form_frmAddPM.Asset) Or IsNull(Form_frmAddPM.Location) Then
    MsgBox "Please enter a value in an asset or location."
    Cancel = True
  End If


 If IsNull(Form_frmAddPM.Supervisor) Or IsNull(Form_frmAddPM.Lead) Or 
    IsNull(Form_frmAddPM.Crew) Or IsNull(Form_frmAddPM.Work_Group) Or 
     IsNull(Form_frmAddPM.Crew_Work_Group) Then
     MsgBox "Please enter value in Supervisor, Lead, Crew, Work Group, or 
     Crew 
        Work Group."
        Cancel = True

      End If

End Sub
...