访问VBA运行时错误' 2186' - 此属性在“设计视图”中不可用

时间:2015-10-26 05:29:48

标签: vba access-vba ms-access-2010

我们目前正在使用Access作为处理少量数据记录(<10,000)的后端数据库。我正在创建一个登录宏,用于检查用户是否具有有效登录,并且基于该登录,他/她将可以访问特定的一组表单。所以基本上它是一个基于权限的系统。

Sub cmdDev_Click()
If DLookup("[AccessLevelID]", "tblUser", "[UserID] = " & Forms!frmLogin!cboUser) = 1 Then
     DoCmd.OpenForm "Finance_Form"
Else
    MsgBox "Sorry, you do not have the correct permissions required.", vbOKOnly
End If

End Sub

每当我运行我的宏时,它会继续抛出以下错误消息&#34;此属性在“设计”视图中不可用。&#34;

我调试了代码并突出显示了IF语句。我仔细检查了所有用户字段并形成了引用,所有这些都没有问题。 任何人都可以提出可能的原因吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可能需要指明cboUser的属性:

Forms!frmLogin!cboUser!value

答案 1 :(得分:0)

当您打开表单时,请确保它未在acdesign中打开,如此:

docmd.openform "Finance_Form", acnormal

如果你的组合框实际上是字符串格式而不是数字格式,那么我会建议这样的事情;

"[UserID] ='" & Forms!frmLogin.cboUser & "'"

此外,如果您的组合框可能有多个列,则可能需要说明您要引用的列。第0列通常是绑定列。考虑到这一点,请参阅下面的示例,其中我使用me来引用组合框列。如果单击按钮与组合框位于同一表单上,您可以考虑这一点。

Me.cboUser.Column(0)