我正在设计一个订单,我想限制访问以将表单提交给某些员工。在employees表中,我有他们的名字,密码(每个员工的密码不同),以及表示该员工可以做什么的不同复选框字段。因此,例如,员工A可能具有密码密码并且已选中“Can_Submit_Request”字段。我已经尝试了以下代码,我在之前的研究中找到并修改了这些代码:
If Me.txPassword = DLookup("Password", "Employee", "Employee_ID='" & YourEmployee_ID & "'") Then
If Nz(DLookup("Can_Submit", "Employee", "Employee='" & YourEmployee_ID & "'") , False) = True Then
'/ continue on to the Submit process
Else
Msgbox "You do not have permission to submit"
End If
Else
Msgbox "Invalid Password"
End If
这收到了“条件表达式中数据类型不匹配”的错误,并且无可否认我真的不知道标准在做什么,尤其是YourEmployee_ID部分。我是Access和VBA的新手,并试图查找如何使用DLookup无济于事,所以对此的任何帮助将不胜感激。
答案 0 :(得分:1)
我对VBA有点生疏,但“条件表达式中的数据类型不匹配”是说代码中的某处有一个数据类型(布尔值,整数等等),这不是数据库期待。即如果Employee_ID是数字/整数数据类型(如果您正在访问,请检查表设计),那么您需要指定提示的变量是VBA中的整数。
这是另一篇有助于理解数据类型的文章: http://www.informit.com/articles/article.aspx?p=712186&seqNum=3
您能否在代码中显示指定用户提示“YourEmployee_ID”变量的位置?
答案 1 :(得分:1)
如果Employee_ID是数字类型字段,请不要使用撇号分隔符。您在一个表达式中使用Employee_ID,而在另一个表达式中使用Employee。 Can_Submit是Yes / No字段吗?
If Me.txPassword = DLookup("Password", "Employee", "Employee_ID=" & YourEmployee_ID)
If Not Nz(DLookup("Can_Submit", "Employee", "Employee_ID=" & YourEmployee_ID), False) Then
MsgBox "You do not have permission to submit"
End If
Else
MsgBox "Invalid Password"
End If