【问题标题】:How to execute VBA Access module?如何执行 VBA Access 模块?
【发布时间】:2011-07-19 23:32:00
【问题描述】:

好的,我正在使用 Access 2003,几天前我刚刚开始学习 Access 和 VBA。
我在一个模块中编写了一些代码,当我按下调试器工具栏上的播放按钮时没有错误。
我如何在我的数据库上实际执行此代码,以便它执行某些操作。
换句话说,我如何使用该模块?

请帮帮我,我正在努力奋斗,截止日期是星期四!

谢谢!

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    这取决于您要如何调用此代码。

    您是通过单击表单的按钮调用它,如果是,则在表单上按钮的属性中,转到“事件”选项卡,然后单击“单击”项目,选择[事件过程]。这将打开该按钮的 VBA 代码窗口。然后你会调用你的 Module.Routine,然后当你点击按钮时这会触发。

    与此类似:

    Private Sub Command1426_Click()
        mdl_ExportMorning.ExportMorning
    End Sub
    

    此按钮单击事件调用Module mdl_ExportMorningPublic Sub ExportMorning

    【讨论】:

    • 问题是我没有使用表单。我有一个包含某些产品订单信息的数据库。我需要交叉引用这些产品,以查看哪些产品最常一起销售。我认为这太复杂了,无法进行查询,所以我想我会尝试用 VBA 来做。我会完全错了吗?有没有办法只“调用”表上的过程?
    • 你需要调用它才能执行它。我通常使用一个表单,我可以在其中使用 Timer Event 或 Click Event 来调用它。您还可以通过 Access 中的宏或从工具栏进行这些调用。我从未从查询中调用 VBA,但它可能是可能的,请参阅包含的链接。 social.msdn.microsoft.com/Forums/en-NZ/accessdev/thread/…
    • 我现在看到了,我通过宏搜索了正在运行的模块并找到了答案。非常感谢!
    【解决方案2】:

    如果您只是想运行一个函数进行测试,您可以在 Access 中使用Immediate Window

    在 VBA 编辑器中按 Ctrl + G 将其打开。

    然后你可以像这样运行你的函数:

    • ?YourFunction("parameter")
      (对于有返回值的函数 - 返回值显示在即时窗口中)
    • YourSub "parameter"
      (对于没有返回值的 subs,或者对于你不关心返回值的函数)
    • ?variable
      (显示变量的值)

    【讨论】:

    • Strg 相当于美式键盘上的Ctrl
    【解决方案3】:

    您运行的不是模块——您运行的是恰好存储在模块中的子例程/函数。

    如果您将代码放在独立模块中,并且未在子例程/函数的定义中指定范围,则默认情况下它们将是公共的,并且可以从应用程序中的任何位置调用。这意味着您可以在宏中使用 RunCode 调用它们,从表单/报告的类模块,从独立的类模块,或从 SQL 调用函数(有一些警告)。

    鉴于您尝试在 VBA 中实现一些您认为对于 SQL 来说过于复杂的东西,SQL 可能是您希望在其中执行代码的上下文。因此,您应该能够在 SQL 语句中调用您的函数:

      SELECT MyTable.PersonID, MyTable.FirstName, MyTable.LastName, FormatAddress([Address], [City], [State], [Zip], [Country]) As Address
      FROM MyTable;
    

    该 SQL 调用一个名为 FormatAddress() 的公共函数,该函数将地址的组成部分作为参数并适当地格式化它们。这是一个简单的示例,因为您可能不需要 VBA 函数来实现此目的,但关键是您可以在 SQL 语句中调用函数。

    子例程(即不返回值的代码)不能从 SQL 语句中调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多