设计访问表单以使用不同的查询

时间:2015-05-05 21:54:13

标签: sql ms-access ms-access-2010

我有一个非常适合我的客户的访问表单,但是他们想要3个相同的表单,但对不同类型的搜索有不同的欠载查询。我可以复制并粘贴相同的表单并附加不同的查询,但这可能会成为一个巨大的维护和可维护性问题。是否可以在同一表单上使用多个查询,或者在打开表单之前更改查询?

1 个答案:

答案 0 :(得分:1)

听起来您的不同查询都返回相同的SELECT字段表达式,但具有不同的WHERE子句。

如果确实如此,请使用不带WHERE子句的基本查询作为表单记录源。然后你可以基本上添加WHERE条款"在飞行中"打开表单时使用DoCmd.OpenForm方法 WhereCondition 选项。

Const cstrForm As String = "YourForm"
Dim strWhereCondition As String

根据您希望表单显示的数据集加载 strWhereCondition 。这3个示例假设表单的记录源包含名为 proj id proj name 所有者ID 的数据类型分别为数字,文本和数字:

strWhereCondition = "[proj id]=" & SomeNumber
strWhereCondition = "[proj name]='" & SomeText & "'"
strWhereCondition = "[owner id]=" & SomeOtherNumber

然后打开由 strWhereCondition 过滤的表单:

DoCmd.OpenForm FormName:=cstrForm, WhereCondition:=strWhereCondition