0

我有一个表格,我想要填写资产或位置以及主管或领导或船员或工作组或船员工作组。我有代码,它可以工作,但它只允许我在这些字段中输入数字。我希望能够在这些字段中输入数字和字母。

 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

我试图将整数更改为不同的类型。当我尝试在表单中输入字母时,使用上面的代码会弹出不匹配类型错误。

预先感谢您的帮助。

4

1 回答 1

2

您正在使用按位运算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
于 2018-09-21T13:55:30.170 回答