从* .cls或类似文件以编程方式将模块导入访问

时间:2015-07-23 19:23:10

标签: ms-access access-vba ms-access-2010

如果打开Microsoft Access,则打开visual basic窗口,以便在Access项目中查看模块和代码列表。您可以从Windows资源管理器中拖动基于文本的文件(txt,cls,bas等)并将其放入模块文件夹中。

此拖放操作会将基于文本的文件中的代码导入到项目中,并提示您保存它(默认名称是您删除的文件的名称。

有没有办法使用VBA以编程方式执行此操作?这似乎是一个简单的任务应该有一个简单的解决方案,但我已经研究了好几天,似乎找不到一个简单的方法来做到这一点。

2 个答案:

答案 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"