【发布时间】:2017-05-18 10:23:56
【问题描述】:
我正在使用一个大型 Excel *.xlsx 表来创建一个 MS Access *.accdb 数据库,包括一些查询。这提供了一个最终的 *.accdb 文件,该文件具有为用户提供最大便利的功能。
因此我想在一个模块中提供一些VBA代码,一个接一个地运行多个查询。
长话短说: 如何从 MS-Excel *.xlsx 文件中的 VBA 脚本创建模块并通过 VBA 将其附加到 MS-Access *.accdb 文件?
我找到了这个相关的帖子 From MS Excel VBA, create a Standard Module in MS Access
这引导我找到如何在我的目标文件中创建空白模块的解决方案
'REQUIRES: MS Access 12.0 Object Library
Dim ObjAccess As Access.Application
Dim strPath As String
strPath = "C:\Temp\MyDB_DEV_1.MDB"
Set ObjAccess = New Access.Application
With ObjAccess
.OpenCurrentDatabase strPath, True
.DoCmd.RunCommand acCmdNewObjectModule
.DoCmd.Save acModule, "Module1"
.DoCmd.Rename "MyCodedModule", acModule, "Module1"
.CloseCurrentDatabase
.Quit
End With
Set ObjAccess = Nothing
我现在如何从这个文件中检索这个空白模块“MyCodedModule”,以添加类似的代码行
Dim m as DAO.Module
Set m = GetModuleFromDataBase("MyCodedModule") 'HOW?
m.AddFromString "Sub foo()" & vbCrLf & _
" Debug.Print ""FOO""" & vbCrLf & _
"End Sub"
【问题讨论】: