【发布时间】:2018-04-23 21:53:14
【问题描述】:
当我们在设计模式下以 MS 访问打开宏时,我们会看到所有查询 (OpenQuery) 和许多其他事件。我只需要列出宏内的查询名称。我已经知道如何从数据库中获取所有查询名称,我特别关注的是,如果我在 VBA 中的函数/子中传递一个宏名称,它将只列出其中的那些查询。
如下图所示,数据库中有三个查询。但是“Macro1”包含两个查询,所以,如果我只想通过将 Macro1 作为参数字符串传递给函数来获取这两个查询名称。
【问题讨论】:
-
我非常感谢 dotNET,您花了一些时间来解决我的问题以找到解决方案。但我真的很抱歉,如果我被误解了,我已经枚举了所有数据库对象,无论是查询还是表单,甚至列出了所有宏名称。我正在努力的是阅读特定宏中的查询名称”如果我将特定的宏名称传递给函数,我只想将查询打包在宏中,而不是任何其他宏。
-
看看bytes.com/topic/access/answers/…那个链接表明无法使用VBA直接查看宏的组件,但它讨论了如何将所有宏导出到文本文件,然后解析文本文件.
-
非常感谢韦恩!!我认为您是对的,在为自己寻找答案之前,我也看到了这个。还在想这里是否有人可以以不同的方式回答它。实际上我有几个包含许多宏和查询的 accdbs。我有严格的时间表将脚本转换为 SAS。如果我手动打开每个宏,然后一一打开查询以转换为 proc sql。这将太单调和耗时。所以我编写了所有代码来从查询中获取 sql 并枚举所有查询,但我需要将它们按顺序编写并放在宏中。
-
我进行了一些搜索,但没有找到自动导出为文本或自动“转换为 Visual Basic”功能的方法。如果你有大量的宏,哎呀!
-
如果我理解正确,您需要从宏中读取查询名称。如果是这样,那绝对是可能的。至少accessdependencychecker.com 使用 VBA 完成此操作,您可以下载并检查它是如何完成的,软件是免费的。
标签: database ms-access automation vba