无效的字段名称访问 Web 应用程序

Invalid Field Name Access Web App

我有一个 Access Web 应用程序,我目前正在尝试为我的一个视图中的字段创建一个 OnClick 宏,以便在单击它时,它会弹出另一个视图到特定记录。目前,我的 Where 子句是 Where: [DistrictID]=[Districts].[DistrictID]

当我进入应用程序并单击带有宏的字段时,我会弹出一个提示 "Invalid field name 'Districts.DistrictID'."

我能找到的唯一提到此错误的网站是:http://blogs.technet.com/b/the_microsoft_access_support_team_blog/archive/2014/08/04/access-app-invalid-field-name-lt-tablename-gt-lt-fieldname-gt-error-when-using-where-clause.aspx

该站点表示这是由于 Where 子句区分大小写所致。我的大小写与 table/field 完全匹配(我用其他语言编程,所以我总是出于习惯匹配大小写)。无论如何,我已经四次检查了我的拼写,甚至将字段名称复制粘贴到我的 Where 子句中。我仍然收到错误。

我有另一个视图与另一个 table/view 做类似的事情,但效果很好(其中:[ContactID]=[Contacts].[ContactID])。

有谁知道为什么我的 Where 子句不起作用,或者我可能做错了什么?

如有需要,可提供额外信息:

我会附上照片,但我数据库中的信息很敏感,所以我会尽力描述相关信息:

我在数据库中有 10 个 table。 "Districts" 是我正在尝试与之合作的人。 Districts table 有...相当多的字段,包括 DistrictID、DistrictName、EmailService、SpecialComment 等等。然而,这四个是为包含宏的数据表视图查询的字段。为 SpecialComment 字段触发 OnClick 宏 - 单击时,我希望我的地区列表视图弹出到单击 SpecialComment 的同一地区(特殊评论有时可以 运行 长,所以如果它被切断由于数据表的大小限制,我希望人们能够阅读其余信息,而不必切换到另一个视图,然后在列表中找到该地区)。 District List 视图和查询的视图在视图中都有 DistrictID 字段,尽管它是隐藏的。我已经尝试在两个视图中取消隐藏该字段,但它没有解决问题 - 在此之前我有其他使用 DistrictID 字段的 Where 子句工作正常,所以我怀疑它是否会改变任何东西。之前的那些 Where 子句已替换为其他函数,因此我没有它们可以参考以了解为什么一个有效而这个无效。

如果您尝试使用 OpenPopup 宏操作打开的视图有一个已保存的查询作为其记录源,那么您必须使用这样的查询名称:

[FieldNameHere]=[NameOfQueryHere].[FieldNameInThatQuery]

如果您使用的是 table 名称,请在适当的位置替换实际的 table 名称。

需要注意的一件事有时会让人们感到困惑,如果您尝试打开的视图使用嵌入式查询作为其记录源,则此技术将不起作用。这样做的原因是您无法知道 Access 在后台为 Access 2013 Web 应用程序视图创建的嵌入式查询名称是什么。 (它实际上是幕后的 GUID 名称。)

我什至不得不在我的书中添加一个关于此的特殊故障排除说明,因为我知道人们会因此而被绊倒(第 584 页):

疑难解答 当视图基于嵌入式查询时,为什么尝试将 Where 子句与 OpenPopup 或 ChangeView 操作一起使用时会出现错误? Access Services 要求 Where 子句包含视图所基于的 table 或查询名称。当您将嵌入式查询定义为视图的记录源时,Access Services 会创建一个在导航窗格中不可见的隐藏系统查询。因此,您不能将 Where 子句与 OpenPopup 操作或 ChangeView 操作结合使用来打开基于嵌入式查询的视图。要解决此限制,您可以将视图基于已保存的查询对象。请注意,Access Services 创建一个隐藏的系统查询作为摘要视图的记录源。这意味着您不能使用 Where 子句参数打开特定记录或记录集的摘要视图。但是,上述解决方法不适用于摘要视图。