在Access中调用宏设计中的函数

时间:2013-07-01 20:41:11

标签: vba ms-access access-vba ms-access-2007

我已经写了一些sql查询,一些子程序并且有一些保存的导入。

现在我正在尝试使用Access中的宏设计来提供一个按顺序运行这些对象的运行按钮。

但是我没有看到任何运行sun程序的命令,我可以看到OpenVisualBasicModule和Runcode。

OpenVisualBaicModule只打开我的子程序,而Run Code只是要求一个函数。

我创建了一个包含所有子过程调用的函数。但是,这些都不起作用,而它们各自都有效。

任何建议做什么。

2 个答案:

答案 0 :(得分:6)

确保您的VBA代码放在一个函数内(不是SUB,它不会起作用)。 创建您的函数,如:

Function DoSomething()
  'Do your stuff
End Function

或者如果你想执行Sub,只需创建一个调用你的sub的函数,如:

Function DoSomething()
   Call YourSub()
End Function

在宏设计中,添加' RunCode'动作(宏命令> RunCode)并调用你的函数:

DoSomething()

瞧,你已经完成了。

答案 1 :(得分:0)

由于您已经在使用代码,因此宏似乎没有必要。在Button的属性表中,找到OnClick行并在其中键入:

=YourFunctionName()

(这也必须是一个函数,而不是一个子程序;这是Access的特性)

在您的功能中,您可以使用DoCmd来调用当前宏中使用的任何宏操作。抛出一个MsgBox作为函数的第一行,以检查它是否正在运行。

您可能不太熟悉代码而不是宏,但是您可以为它添加好的注释,逐步调试代码,使用合理的错误处理 - 比使用宏更容易