如何在VBA Access中创建全局函数并向其传递变量?

如何在VBA Access中创建全局函数并向其传递变量?,vba,function,ms-access,global-variables,global,Vba,Function,Ms Access,Global Variables,Global,在我的程序中,我试图通过将其放入全局函数来减少重复代码 在当前设置中,我调用的函数如下: Call [Global variable].Close (全局变量是类模块的名称) 这个函数看起来像 Public Function Close() DoCmd.Close Cancel = True End Function 不幸的是,这无法正确编译。我做错了什么??(顺便说一句,我还想向这个函数传递变量和从这个函数传递变量,并想知道这将如何实现) 感谢您的帮助。如果您使用的是类模块,则需

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

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

Call [Global variable].Close
(全局变量是类模块的名称)

这个函数看起来像

 Public Function Close()
  DoCmd.Close
  Cancel = True
End Function
不幸的是,这无法正确编译。我做错了什么??(顺便说一句,我还想向这个函数传递变量和从这个函数传递变量,并想知道这将如何实现)


感谢您的帮助。

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

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

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

您会收到什么编译错误?编译错误-预期标识符,因为
Close
将是一个保留字。尝试使用
公共函数CloseIt()
(或其他名称)。但请确保调用类实例的
CloseIt
(根据ThunderFrame的回答)。根据ThunderFrame回答中的一些注释,我认为您需要提供更多信息。(1) 你们班做什么?(2) 这与用户所在的表单有何关联?(3) 代码的哪一部分试图调用类'
Close
函数?(我从一条评论中感觉到,当用户试图关闭表单时,您正试图关闭该类。)(4)
close
函数实际上是在一个类中,还是仅仅在一个标准代码模块中?这取决于。您从何处调用代码?您希望代码执行什么操作?我希望用户每次单击“关闭”按钮时都调用代码,而不管他们使用的是什么表单