如果打开Microsoft Access,则打开visual basic窗口,以便在Access项目中查看模块和代码列表。您可以从Windows资源管理器中拖动基于文本的文件(txt,cls,bas等)并将其放入模块文件夹中。
此拖放操作会将基于文本的文件中的代码导入到项目中,并提示您保存它(默认名称是您删除的文件的名称。
有没有办法使用VBA以编程方式执行此操作?这似乎是一个简单的任务应该有一个简单的解决方案,但我已经研究了好几天,似乎找不到一个简单的方法来做到这一点。
答案 0 :(得分:2)
您可以使用VBE对象模型中的VBComponents.Import
方法。有关详细信息,请参阅Access'帮助系统中的导入方法(VBA加载项对象模型)主题。
此示例代码从存储数据库的文件夹中导入 modImportMe.bas 。
Dim strFile As String
Dim strPath As String
Dim strProject As String
strFile = "modImportMe.bas"
strPath = CurrentProject.Path & Chr(92) & strFile
Debug.Print strPath
If Len(Dir(strPath)) > 0 Then
'VBE.ActiveVBProject.VBComponents.Import strPath
VBE.VBProjects("Database2").VBComponents.Import strPath
DoCmd.RunCommand acCmdCompileAndSaveAllModules
Else
MsgBox "File not found: " & strPath, vbOKOnly + vbCritical, "Oops!"
End If
请注意,此数据库实际上只包含一个VBProject
,因此我可以使用VBE.ActiveVBProject
引用它。但是,如果您的帐户包含多个VBProject
,则按名称引用它会更安全,VBProjects("<Name>")
即使只有一个也可以使用。
答案 1 :(得分:1)
是的,这是要使用的命令LoadFromText
。
用法:
LoadFromText acModule, "NameOfObject", "FileName"