我有一个表格,我要填写资产或地点信息,并主管,主管或领导或船员或工作组或船员工作组。我有代码并且可以使用,但是只允许我在这些字段中输入数字。我希望能够在这些字段中输入数字和字母。
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
我试图将整数更改为不同的类型。使用上面的代码,当我尝试以字母形式输入字母时,会弹出不匹配类型错误。
预先感谢您的帮助。
答案 0 :(得分:2)
您正在使用按位的OR
运算符,该运算符要求将您使用的两个值都设为整数(请参见the docs,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