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

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

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

【问题讨论】:

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

标签: ms-access vba


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你试过run code宏吗?

    【讨论】:

    • RunCode 和 RunMacro 都给了我同样的错误。它在我的模块中找不到任何公共潜艇。
    • @kainC 你试过这个吗? stackoverflow.com/questions/17244980/…
    • 感谢 majjam,这正是我所需要的。它必须用 RunCode 指定——并且只能调用一个函数,而不是一个子函数。违反直觉,因为 RunCode 无论如何都不处理返回值
    猜你喜欢
    • 2015-12-15
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多