根据参数应用查询条件
Apply query criteria based on parameters
我需要 运行 在 MS Access 数据库中进行查询,从表单中提供一些参数。想象下一个例子:
我有一个表格,其中包含:
- CheckBox1 和 Text1
- CheckBox2 和 Text2
- 按钮(到运行查询)
现在想象一个包含两个字段的查询:ID
、NAME
.
我只想在启用 CheckBox1 时按 Text1 过滤 ID
。如果不是,我希望查询不要以任何方式过滤 ID
(就好像 'query' 输入为空)。
同理,我只想在CheckBox2启用的情况下按Text2过滤NAME
。如果不是,我希望查询不要以任何方式过滤 NAME
(就像之前的 ID
)。
几天来我尝试了很多东西,浏览了大量的互联网页面,但仍然没有找到解决方案。
您可以使用如下 SQL 查询:
select * from YourTable t
where
([Forms]![YourForm]![CheckBox1] = False or t.ID = [Forms]![YourForm]![Text1]) and
([Forms]![YourForm]![CheckBox2] = False or t.NAME = [Forms]![YourForm]![Text2])
(将 YourTable
更改为 table 的名称,将 YourForm
更改为表单的名称;t
只是一个别名,因此您只需在代码中的一处更改 table 名称。
我需要 运行 在 MS Access 数据库中进行查询,从表单中提供一些参数。想象下一个例子:
我有一个表格,其中包含:
- CheckBox1 和 Text1
- CheckBox2 和 Text2
- 按钮(到运行查询)
现在想象一个包含两个字段的查询:ID
、NAME
.
我只想在启用 CheckBox1 时按 Text1 过滤 ID
。如果不是,我希望查询不要以任何方式过滤 ID
(就好像 'query' 输入为空)。
同理,我只想在CheckBox2启用的情况下按Text2过滤NAME
。如果不是,我希望查询不要以任何方式过滤 NAME
(就像之前的 ID
)。
几天来我尝试了很多东西,浏览了大量的互联网页面,但仍然没有找到解决方案。
您可以使用如下 SQL 查询:
select * from YourTable t
where
([Forms]![YourForm]![CheckBox1] = False or t.ID = [Forms]![YourForm]![Text1]) and
([Forms]![YourForm]![CheckBox2] = False or t.NAME = [Forms]![YourForm]![Text2])
(将 YourTable
更改为 table 的名称,将 YourForm
更改为表单的名称;t
只是一个别名,因此您只需在代码中的一处更改 table 名称。