设计一个访问表单以使用不同的查询
Design an Access Form to Use Different Queries
我有一个非常适合我的客户的访问表单,但是他们想要 3 个相同的表单,但对不同类型的搜索有不同的欠运行查询。我可以复制并粘贴相同的表单并附加不同的查询,但这可能会成为一个巨大的维护和可维护性问题。是否可以在同一个表单上使用多个查询,或者在打开表单之前更改查询?
听起来您的不同查询都是 return 相同的 SELECT
字段表达式,但具有不同的 WHERE
子句。
如果是,请使用不带 WHERE
子句的基本查询作为表单的 记录源 。然后,您基本上可以在打开表单时使用 DoCmd.OpenForm
方法的 WhereCondition 选项添加 WHERE
子句 "on the fly"。
Const cstrForm As String = "YourForm"
Dim strWhereCondition As String
根据您希望表单显示的数据集加载 strWhereCondition。这 3 个示例假设表单的 Record Source 包含名为 proj id、proj name 和 owner id数据类型分别为numeric、text、numeric:
strWhereCondition = "[proj id]=" & SomeNumber
strWhereCondition = "[proj name]='" & SomeText & "'"
strWhereCondition = "[owner id]=" & SomeOtherNumber
然后打开由 strWhereCondition:
筛选的表单
DoCmd.OpenForm FormName:=cstrForm, WhereCondition:=strWhereCondition
我有一个非常适合我的客户的访问表单,但是他们想要 3 个相同的表单,但对不同类型的搜索有不同的欠运行查询。我可以复制并粘贴相同的表单并附加不同的查询,但这可能会成为一个巨大的维护和可维护性问题。是否可以在同一个表单上使用多个查询,或者在打开表单之前更改查询?
听起来您的不同查询都是 return 相同的 SELECT
字段表达式,但具有不同的 WHERE
子句。
如果是,请使用不带 WHERE
子句的基本查询作为表单的 记录源 。然后,您基本上可以在打开表单时使用 DoCmd.OpenForm
方法的 WhereCondition 选项添加 WHERE
子句 "on the fly"。
Const cstrForm As String = "YourForm"
Dim strWhereCondition As String
根据您希望表单显示的数据集加载 strWhereCondition。这 3 个示例假设表单的 Record Source 包含名为 proj id、proj name 和 owner id数据类型分别为numeric、text、numeric:
strWhereCondition = "[proj id]=" & SomeNumber
strWhereCondition = "[proj name]='" & SomeText & "'"
strWhereCondition = "[owner id]=" & SomeOtherNumber
然后打开由 strWhereCondition:
筛选的表单DoCmd.OpenForm FormName:=cstrForm, WhereCondition:=strWhereCondition