【发布时间】:2020-07-10 10:44:54
【问题描述】:
我正在尝试在 MS Access (Office 365) 中打开一个表单。我正在使用以下 VBA 代码:
DoCmd.OpenForm "CommunityAccountList", acNormal, , , , , "Community = " & Me.CommunityID.Value
代码运行正常,然后开始产生错误:
运行时错误“3070”:Microsoft 数据库引擎无法将“5239”识别为有效的字段名称或表达式。
我在这行代码之前添加了“MsgBox "Community = " & Me.CommunityID.Value',这会产生以下弹出窗口:"Community = 1"。我无法弄清楚 Access 从哪里获得 5239。任何帮助将不胜感激。
【问题讨论】:
-
过滤条件显示在错误的参数中。我不明白它是如何工作的。删除 3 个逗号。
-
我刚刚测试过,我没有收到错误,但也没有应用过滤器。所以其他事情正在发生。您在 OpenArgs 参数中有此标准。打开表单是否试图用 OpenArgs 做点什么?
-
欢迎来到 SO。如果您在打开表单时应用了 WHERE 分句,它应该类似于 @June7 所建议的
DoCmd.OpenForm "CommunityAccountList", acNormal, , "Community = " & Me.CommunityID.Value。 -
Community=Me.CommunityID.Value 是一个 OpenArgs,而不是搜索过滤器。我只是传递打开表单所需的变量。这以前在这条线上工作过,在我使用 DoCmd.OpenForm 的其他地方也是如此。我仍然不明白 Access 从哪里得到 5239。
-
OpenArgs 传递过来的字符串怎么办?不管是什么,一定是导致错误的原因。如果您想过滤打开表单,则将该条件放在 WHERE CONDITION 参数中。