一、问题描述:
请问一下Access关闭所有打开的查询的代码怎么写?有批量关闭所有查询的代码吗?
二、解决方案:
Access VBA 中,可以使用以下代码来关闭所有已打开的查询:
Sub CloseAllQueries() Dim obj As Object ' 遍历所有打开的 Access 查询对象 For Each obj In Application.CurrentData.AllQueries ' 检查对象是否已打开 If Application.SysCmd(acSysCmdGetObjectState, acQuery, obj.Name) = acObjStateOpen Then DoCmd.Close acQuery, obj.Name End If Next objEnd Sub
以上VBA代码的工作原理如下:
使用 Application.CurrentData.AllQueries 来遍历所有查询对象。
使用 Application.SysCmd(acSysCmdGetObjectState, acQuery, obj.Name) 来检查每个查询对象是否已经打开。
如果查询对象已经打开,则使用 DoCmd.Close acQuery, obj.Name 来关闭该查询。
将此代码粘贴到一个模块中并运行 CloseAllQueries 子程序即可关闭所有打开的查询。
演 示:
示例下载: