访问VBA Requery现在不可用错误2046

时间:2018-01-16 15:45:42

标签: vba ms-access access-vba runtime-error

我正在尝试刷新2个查询, MyTaskQuery和MyTaskActions 两个查询都包含一个INSERT SLQ语句,用于将其他表中的值插入到表MyTasksTbl

Query MyTaskQuery然后从MyTasksTbl中选择具有我的用户名的操作。

当我添加删除SQL命令(删除任何已完成/已关闭的操作并确保没有重复项)时,我得到了

  

运行时错误2046,命令或操作“Requery”不可用   现在

有人可以告诉我为什么会收到此错误吗?代码在form_load()

上运行
SQL = "Delete * From MyTasks Where UserName = '" & User & "';"
DoCmd.RunSQL SQL

DoCmd.Requery MyTaskQuery
DoCmd.OpenQuery MyTasksActions

1 个答案:

答案 0 :(得分:2)

您只能重新查询打开的对象。尝试重新查询已关闭的对象时,可能会出现此错误。

您可以使用以下代码测试是否在重新查询之前打开了查询:

'Since you aren't using apostrophes, I assume the query name is stored in a variable
If CurrentData.AllQueries(MyTaskQuery).IsLoaded Then
    DoCmd.Requery MyTaskQuery
End If

请注意,打开一个对象只是为了重新查询它是没有意义的,因为它在打开时已经重新查询。