用VBA关闭所有已打开的查询

张志哥聊电脑事 2024-07-06 17:09:33
使用For Each遍历所有打开的Access查询对象并关闭已打开的所有查询示例分享。

一、问题描述:

请问一下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 子程序即可关闭所有打开的查询。

演 示:

示例下载:

0 阅读:0

张志哥聊电脑事

简介:感谢大家的关注