Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在表单字段中更新访问权限之前,VBA只能输入数字_Vba_Ms Access_Type Mismatch_Isnull_Beforeupdate - Fatal编程技术网

在表单字段中更新访问权限之前,VBA只能输入数字

在表单字段中更新访问权限之前,VBA只能输入数字,vba,ms-access,type-mismatch,isnull,beforeupdate,Vba,Ms Access,Type Mismatch,Isnull,Beforeupdate,我有一个表格,我希望填写资产或位置,以及主管、领导、团队、工作组或团队工作组。我有代码,但它只允许我在这些字段中输入数字。我希望能够在这些字段中输入数字和字母 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 locatio

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

 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
我尝试将integer更改为不同的类型。使用上面的代码,当我尝试在表单中输入字母时,会弹出一个类型不匹配的错误


提前感谢您的帮助。

您使用的是按位
运算符,它要求您使用的两个值都是整数(请参阅,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

您使用的是按位
运算符,这要求使用它的两个值都是整数(请参见,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