如何将 VBA 函数调用到子过程中
-
21-08-2019 - |
题
我知道这对于某人来说是一个简单的问题,但我从未真正使用过功能模块,因为我不明白它们是什么。
所以我有一大堆可以用它来做的事情(减少冗余),但我想知道如何从表单调用子过程(如按钮单击)。
我试过这个...
Sub Command_Click()
Call "pptCreator"
End Sub
我知道这很糟糕,但我不知道如何将其纳入程序中。
解决方案
下面是一些不同的方法可以调用在Microsoft Access的事情:
要呼叫从一个模块
形式或子功能在要调用必须是公开的,形式的子如:
Public Sub DoSomething()
MsgBox "Foo"
End Sub
调用子是这样的:
Call Forms("form1").DoSomething
在拨打电话之前,该表格必须是开放的。
要调用的事件过程,应该调用公共过程的形式之内,并且该公共过程中调用事件过程。
要调用的模块中的子程序从表单
Public Sub DoSomethingElse()
MsgBox "Bar"
End Sub
...请直接在事件过程中调用它:
Call DoSomethingElse
要呼叫的形式的子例程,而无需使用一个事件过程
如果你愿意,你可以实际绑定功能到窗体控件的事件,而无需控制下创建一个事件过程。要做到这一点,首先需要一个公共的功能模块,而不是子在,像这样的:
Public Function DoSomethingElse()
MsgBox "Bar"
End Function
然后,如果你有窗体上的一个按钮,而不是推杆[事件过程]在属性窗口的OnClick事件,把这个:
=DoSomethingElse()
当您单击该按钮,它会调用模块中的公共职能。
要调用函数,而不是一个程序
如果调用子看起来像这样:
Call MySub(MyParameter)
然后调用函数看起来像这样:
Result=MyFunction(MyFarameter)
其中结果是由函数返回类型的变量。
注意::您并不总是需要Call关键字。在大多数情况下,你可以调用子是这样的:
MySub(MyParameter)
其他提示
如果pptCreator是在同一个文件中的功能/过程,则可以把它称为如以下
call pptCreator()
调用子步骤 - 3路技术
一旦你有一个过程,不管你创造了它,或者它是Visual Basic语言的一部分,你可以使用它。使用过程也称为调用它。
在调用程序之前,你应该先找到您要在其中使用它的代码段。要调用一个简单的程序,输入其名称。下面是一个例子:
Sub CreateCustomer()
Dim strFullName As String
strFullName = "Paul Bertrand Yamaguchi"
msgbox strFullName
End Sub
Sub Exercise()
CreateCustomer
End Sub
除了使用一个程序的名字来称呼它,你也可以用Call关键字在它前面。下面是一个例子:
Sub CreateCustomer()
Dim strFullName As String
strFullName = "Paul Bertrand Yamaguchi"
End Sub
Sub Exercise()
Call CreateCustomer
End Sub
当调用一个过程,使用或没有Call关键字,则可以任选地键入其名称的右侧开口和闭括号。下面是一个例子:
Sub CreateCustomer()
Dim strFullName As String
strFullName = "Paul Bertrand Yamaguchi"
End Sub
Sub Exercise()
CreateCustomer()
End Sub
程序和访问级别
像变量访问时,访问程序可以由接入电平控制。一个程序可以由私人或公共。要指定程序的访问级别,与私营或公共关键字在它前面。下面是一个例子:
Private Sub CreateCustomer()
Dim strFullName As String
strFullName = "Paul Bertrand Yamaguchi"
End Sub
这分别适用于全局变量的规则是相同的:
公开:如果一个过程是由私人,它可以通过相同的模块的其他程序被调用。外部模块的程序不能访问这样的程序。
此外,当一个过程是私有的,它的名字不会出现在宏对话框
公开:如公共创建的过程可以通过相同的模块的程序,并通过其它模块的过程调用
此外,如果一个程序创建为市民,当您访问宏对话框,其名称显示,你可以从那里运行它。
模块中的程序开始是有用的和通用的,当你在传递参数。
例如:
Public Function DoSomethingElse(strMessage As String)
MsgBox strMessage
End Function
现在可以显示与称为strMessage字符串变量传递在任何消息。
要将功能添加到表单上的新按钮:(并避免使用宏来调用函数)
创建函数 (Function MyFunctionName()) 后,您将进入表单设计视图:
- 添加一个新按钮(我认为您不能重新分配旧按钮 - 但不确定)。
- 当按钮向导窗口打开时,单击取消。
- 转至按钮属性事件选项卡 - 单击时 - 字段。
- 在该字段下拉菜单中选择:活动程序。
- 现在单击下拉菜单旁边的按钮...在其中,您将被带到一个 新的 Visual Basic 窗体窗口中的 Private Sub。
- 在该 Private Sub 类型中:调用我的函数名称
它应该看起来像这样:
私有子Command23_Click()
调用我的函数名称
结束子
- 然后保存即可。