繁体   English   中英

Ms Access VBA:如何运行存储在另一个数据库上的一个数据库中的子过程?

[英]Ms Access VBA: How do I run a Sub Procedure that is stored in one DB on another DB?

我有一个带有 VBA 过程的 DB(我们将其称为 DB1),该过程循环遍历文件路径中的所有子文件夹,并在文件路径中查找具有特定字符串的其他 DB 文件。 当它找到带有该字符串的 DB(我们将其称为 DB2)时,我需要在 DB2 上运行一个 Sub Procedure(存储在 DB1 中)。 我有代码直到它打开 DB2,但我不知道如何从 DB1 运行宏。 我首先尝试了 appAccess.Run 方法,然后我尝试了 docmd.runmacro 方法,但都没有奏效。

Sub RunExternalProcedure(strFilePath)
    Dim appAccess As Access.Application
    Set appAccess = CreateObject("Access.Application")
    appAccess.OpenCurrentDatabase strFilePath, False
    'Run Sub procedure. 'appAccess.Run "TruncateTables"
    DoCmd.RunMacro "TruncateTables"
    Set appAccess = Nothing
End Sub

问题是(很可能)您正在尝试运行不存在的过程。 如果我是你,我会:

  1. 学习检查对象是否存在并在“未找到”时使用 DoCmd.TransferDatabase 命令移动模块然后执行它。

    https://docs.microsoft.com/en-us/office/vba/api/access.docmd.transferdatabase

  2. 使用要在引用中运行引用的模块制作文件。 然后没有它的访问文件可以远程调用它。

    Access 2010:链接数据库、参考还是加载项?

我可能会做#2,因为那样会让你拥有一个实用函数 DB 的心态,其他访问应用程序将其用于常用的东西(而不是复制/粘贴相同的函数/子无处不在)。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM