我正在尝试刷新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
答案 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
请注意,打开一个对象只是为了重新查询它是没有意义的,因为它在打开时已经重新查询。