我正在 MS Access 2007 中处理一个复杂的项目。我很难找到正确的方法/语法来重新查询开放表单之外的查询。我还是 VBA 的新手,所以如果我犯了错误或不正确,请原谅我。
我创建了一个查询,它使用表单中特定组合框的值作为其 WHERE 条件的一部分。我已经测试过了,它工作得很好。现在我正在为相关组合框处理“更新后”事件,以便当我更改相关组合框的值时,它会自动告诉我的查询使用 WHERE 子句中的新值重新运行。
我原本想在 VBA 中使用以下命令
DoCmd.Requery [Queries]![TestQuery]
但我不清楚是否可以使用 DoCmd.Requery,因为查询在开放表单之外并且没有嵌入其中。
我正在寻找有关如何最好地实现此效果的选项,而不仅仅是 VBA。所以如果一个宏会更好,请给我一个例子来工作
更新 只是为了让事情更清楚一点 这里是选择查询的实际 SQL 代码,我想在更新事件之后通过它重新查询。
SELECT ForcastTrans.Location, ForcastTrans.Client, ForcastTrans.Department, ForcastTrans.Account, ForcastTrans.Currency, ForcastTrans.Month1, ForcastTrans.Month2, ForcastTrans.Month3, ForcastTrans.Month4, ForcastTrans.Month5, ForcastTrans.Month6, ForcastTrans.Month7, ForcastTrans.Month8, ForcastTrans.Month9, ForcastTrans.Month10, ForcastTrans.Month11, ForcastTrans.Month12
FROM ForcastTrans
WHERE (((ForcastTrans.EntityID)=[Forms]![ReportSelect]![BusinessUnit]));
正如我之前所说,这个查询本身就可以正常工作,我只需要能够发出一个更新后事件,它将告诉这个查询根据更新的 WHERE 条件重新运行。