MS Access - 无法从 RunMacro 运行模块中的子程序

Posted

技术标签:

【中文标题】MS Access - 无法从 RunMacro 运行模块中的子程序【英文标题】:MS Access - can't run subs in module from RunMacro 【发布时间】:2017-02-25 20:01:31 【问题描述】:

我的 Access 2013 数据库中有几个模块,其中包括公共子和函数。但是,它们不会出现在 Run Macro 列表中,如果我使用 RunMacro 或 RunCode 命令构建宏,我将无法调用它们。我有允许所有宏的安全设置。

除了将您的函数/子程序声明为公共以便在 VBA 窗口之外运行它们之外,还有其他步骤吗?

【问题讨论】:

您是否在名称末尾包含“()”?如果没有,请尝试添加... 是的,我试过带括号和不带括号,并尝试在前面添加模块名称。 你试过运行宏命令吗? msdn.microsoft.com/en-us/library/bb177365(v=office.12).aspx 我很清楚这一点......是问题(a)您无法运行函数/子程序,或者(b)您看不到函数列表/sub's 当你建立一个宏?我同意下面的两张海报,您需要使用“RunCode”操作。如果我构建一个宏,使用 RunCode 作为操作并手动输入“GetNetworkUserName()”,它将执行该函数。如果问题是您不确定它是否运行,请在函数中添加消息框或 debug.print,然后运行宏。 问题是 (a)- 它没有运行,尽管它也没有作为选择提供。我在下面评论说它不在 RunMacro 或 RunCode 中运行,所以我将更新问题以显示这一点。 【参考方案1】:

要在宏中运行公共 VBA 子/函数,您应该使用 RunCodeaction,而不是 RunMacro

【讨论】:

【参考方案2】:

你试过run code宏吗?

【讨论】:

RunCode 和 RunMacro 都给了我同样的错误。它在我的模块中找不到任何公共潜艇。 @kainC 你试过这个吗? ***.com/questions/17244980/… 感谢 majjam,这正是我所需要的。它必须用 RunCode 指定——并且只能调用一个函数,而不是一个子函数。违反直觉,因为 RunCode 无论如何都不处理返回值

以上是关于MS Access - 无法从 RunMacro 运行模块中的子程序的主要内容,如果未能解决你的问题,请参考以下文章

Ms Access - 无法从 Word RTF 报告导出中删除换行符

无法使用 c#“第 1 行的 SQL 语法错误”将数据从 Ms Access 迁移到 MySQL 工作台

从 MS Access 执行存储过程导致超时

无法弄清楚 MS Access 的此更新查询代码有啥问题

MS Access 无法创建 MDE 错误。对象太多

从 IronPython 访问 MS Access 的问题