如何在VBA Access中创建全局函数并将变量传递给它?

时间:2017-08-28 00:23:47

标签: vba function ms-access global-variables global

在我的程序中,我试图通过将重复代码放入全局函数来减少重复代码。

在我目前的设置中,我调用的函数如下:

Call [Global variable].Close

(全局变量是类模块的名称)。

此功能看起来像;

 Public Function Close()
  DoCmd.Close
  Cancel = True
End Function

不幸的是,这不会正确编译。我究竟做错了什么?? (顺便说一句,我也想在这个函数之间传递变量,并想知道如何做到这一点。)

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果您正在使用类模块,则需要该模块的实例才能调用其成员。这需要创建预先声明的类模块(包括导出代码,在记事本中编辑和重新导入),或者使用New关键字创建实例:

Dim myClassInstance As MyClass
Set myClassInstance = New MyClass
myClassInstance.Close

但是,根据您的使用情况,最好使用标准模块中可用的功能 - 然后您可以从任何地方(包括查询中)调用它。