我有一个基于select查询的MS Access 2003表单。它包含几个可用于过滤表单记录的组合框。除了其中一个以外的所有工作都按预期工作,我可以让这个工作的唯一方法是使用VBA替换部分查询的SQL:
Set qdf = CurrentDb.QueryDefs("MyQuery")
qdfOLD = qdf.sql
qdf.sql = Replace(qdf.sql, strOldCriteria, strNewCriteria)
Me.Requery ' I've also tried DoCmd.Requery and Forms!MyForm.Requery
qdf.sql = qdfOLD
Set qdf = Nothing
替换部分工作正常,如果我遗漏最后三行,然后在数据表视图中查看查询,我将只看到预期的记录。但由于某种原因,表格不是重新查询 - 即,我仍然看到所有记录,而不是过滤后的子集。我错过了什么?
答案 0 :(得分:0)
这不是怎么做的。
您可以使用和SQL表达式更改或修改表单的RecordSource
,也可以将过滤字符串应用于表单的Filter
属性。
每当您执行此操作时,表单将重新查询。