查询SQL更改后表单无法重新查询(MS Access 2003 / VBA)

时间:2015-09-08 03:05:29

标签: access-vba ms-access-2003

我有一个基于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

替换部分工作正常,如果我遗漏最后三行,然后在数据表视图中查看查询,我将只看到预期的记录。但由于某种原因,表格不是重新查询 - 即,我仍然看到所有记录,而不是过滤后的子集。我错过了什么?

1 个答案:

答案 0 :(得分:0)

这不是怎么做的。

您可以使用和SQL表达式更改或修改表单的RecordSource,也可以将过滤字符串应用于表单的Filter属性。

每当您执行此操作时,表单将重新查询。