-4

我想将所有查询(带有查询代码的名称)导出到记事本/word 文档。我不擅长 VBA 代码,但我从 Web 中的某个站点找到了此代码,该站点将所有带有查询代码的查询导出到记事本中。代码:

Sub ExportQueries()
Dim db As Object
Dim qdf As Object
Dim ff As Long

Set db = CurrentDb
ff = FreeFile()

Open "C:\Queries.txt" For Output As #ff

    For Each qdf In db.QueryDefs

        Print #ff, "Query: " & qdf.Name & vbCrLf
        Print #ff, "SQL:" & vbCrLf
        Print #ff, qdf.SQL & vbCrLf

    Next qdf

Close #ff
End Sub

但我只想导出我正在使用的宏中的那些查询。如何提取特定宏中使用的查询?有人可以给我代码吗?

My Macros - Alerts_MCR
            EBAC_MCR

我正在使用的宏也很少。

4

1 回答 1

0

以编程方式以稳健的方式执行您所描述的事情绝对是一项不平凡的练习。生成的 VBA 代码必须:

  • 获取您的宏列表,

  • 检查每个宏的每个操作以查看它是否直接(例如,通过OpenQuery)或间接(例如,通过RunCode调用本身调用查询的 VBA 函数的 a)调用查询,

  • 解析任何被调用的查询以查看它们是否调用任何其他查询,再次直接(通过FROM子句)或间接(例如,通过 VBA 函数),并递归地执行此操作,并且

  • 还要检查宏是否调用任何其他宏,如果是,对它们执行相同的操作。

所有这些构成了一个非常有趣的开发项目,但是(IMO)远远超出了 Stack Overflow Q+A 格式的范围。

于 2013-05-21T11:46:29.420 回答