【发布时间】:2015-02-04 18:11:55
【问题描述】:
我想在 Excel 中创建一个程序,该程序循环访问 Access 数据库列表并编写 Access 模块中存在的 VBA。我找到了一些可以从 Access 运行的代码,这些代码编写了 Access 模块中存在的 VBA。我试图弄清楚如何从 Excel 中引用数据库文件并在每个数据库文件上运行程序。我可能能够弄清楚如何遍历数据库文件。我只需要在下面的代码中引用数据库文件的帮助。
我可以这样打开数据库:
Dim cstrDbFile As String = "C:\Database51.accdb"
Dim objShell As Object
Set objShell = CreateObject("WScript.Shell")
objShell.Run cstrDbFile
我还尝试像这样设置对 Access 的引用:
Dim appAccess As Object
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase ("C:\Database51.accdb")
我需要弄清楚如何在以下位置引用 Access 数据库:
Application.VBE.ActiveVBProject.VBComponents
我可能需要弄清楚如何创建一个引用来替换 ActiveVBProject。
下面是我找到的一些代码,它写入了 VBA 模块的内容。我不记得我在哪里找到的。
For Each Component In Application.VBE.ActiveVBProject.VBComponents
With Component.CodeModule
'The Declarations
For Index = 1 To .CountOfDeclarationLines
Debug.Print .Lines(Index, 1)
Next Index
'The Procedures
For Index = .CountOfDeclarationLines + 1 To .CountOfLines
Debug.Print .Lines(Index, 1)
Next Index
End With
Next Component
【问题讨论】:
-
VbComponent 有一个导出方法,它比遍历每个模块中的每一行要快得多。 christopherjmcclellan.wordpress.com/2014/10/10/vba-and-git