[英]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
问题是(很可能)您正在尝试运行不存在的过程。 如果我是你,我会:
学习检查对象是否存在并在“未找到”时使用 DoCmd.TransferDatabase 命令移动模块然后执行它。
https://docs.microsoft.com/en-us/office/vba/api/access.docmd.transferdatabase
使用要在引用中运行引用的模块制作文件。 然后没有它的访问文件可以远程调用它。
我可能会做#2,因为那样会让你拥有一个实用函数 DB 的心态,其他访问应用程序将其用于常用的东西(而不是复制/粘贴相同的函数/子无处不在)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.