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