Microsoft Access 表单查询

Posted

技术标签:

【中文标题】Microsoft Access 表单查询【英文标题】:Microsoft Access Form Query 【发布时间】:2016-10-26 12:37:16 【问题描述】:

我创建了一个表单,允许用户通过表单在数据库中搜索数据。

数据库受到限制,用户只能通过按钮和表单进行导航。

目前,我已经开发了一个表单和一个查询,它从表单中的一个字段中获取条件,然后运行查询。

这是我在查询中用于从表单字段中获取数据的代码:

[Forms]![Query].[refCriteria]

此代码位于查询设计的“条件”部分的 Ref 字段下。

但是,当有多个条件时,查询将不起作用。我尝试在CCG 字段下输入以下代码:

[Forms]![Query].[ccgCriteria]

我注意到,当同一查询中有两个或多个上述代码实例时,无法产生任何结果。

除此之外,它还阻止我的用户查询多个条件,这当然是我需要的功能。

有没有办法让任何或所有条件都可能通过同一个查询运行?我能想到的唯一方法是创建大量查询,所有这些查询都会接受不同的搜索条件,但这不是一种实用的方法。

【问题讨论】:

【参考方案1】:

如果您同时输入了两个搜索条件并且您的行的两个字段的搜索条件相同,则查询将产生结果。如果您只需要通过一个条件进行搜索,而将其他一些搜索字段留空,请对每个列使用如下条件:

WHERE
[ref]=[Forms]![Query].[refCriteria] or Nz([Forms]![Query].[refCriteria],"")="" AND
[cgc]=[Forms]![Query].[ccgCriteria] or Nz([Forms]![Query].[ccgCriteria],"")=""

我建议在 SQL 模式下键入条件,在图形模式下,Access 会产生更难理解的结构,尤其是当您有超过 2 个搜索字段时。

【讨论】:

我明白了。那么,如果我选择使用单个文本字段作为查询条件并且用户单击他们想要搜索的按钮,该怎么办?例如,他们将在搜索字段中输入London,然后可以单击RefCCG 或任何其他按钮在该特定字段中进行搜索。那怎么办? 实现的变种很少:1)通过按钮单击,您可以将搜索条件复制到 Ref、CGC 等搜索条件的隐藏字段并重新查询,2)根据搜索条件和按钮生成完整的 SQL 字符串单击,3)使用参数创建查询,然后通过按钮单击提供一个或多个参数进行查询,基于此查询打开记录集并用创建的记录集替换表单的记录集。 #1 最简单,我更喜欢 #2。 我同意,第二个听起来是更好的选择。您介意提供一些有关如何执行此操作的示例代码吗? 您可以在 Internet 上找到示例。比如这个:iaccessworld.com/create-search-form-using-vba-ms-access

以上是关于Microsoft Access 表单查询的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Access - 导航表单导致我的查询不起作用

Microsoft Access 2010 中的自定义查询

如何在 Microsoft Access 中通过 VBA 设置 INSERT SQL 查询的参数值?

使用 VBA 在 Microsoft Access 中创建表单

Microsoft Access,在 DataSheet 子表单中自动生成列

Microsoft Access 无法添加不在记录集中的表的记录连接键