我知道对于那里的人来说这是一个简单的问题,但我从来没有真正使用过功能模块,因为我不明白它们是什么。
所以我有很多东西可以使用它(减少冗余),但我想知道如何从表单中调用sub(如按钮单击)过程。
我试过了......
Sub Command_Click()
Call "pptCreator"
End Sub
我知道这很糟糕,但我不知道如何将其纳入程序。
答案 0 :(得分:30)
以下是您可以在Microsoft Access中调用内容的一些不同方法:
您呼叫表格中的子必须是公开的,如:
Public Sub DoSomething()
MsgBox "Foo"
End Sub
像这样调用sub:
Call Forms("form1").DoSomething
在拨打电话之前,表格必须打开。
要调用事件过程,您应该在表单中调用公共过程,并在此公共过程中调用事件过程。
Public Sub DoSomethingElse()
MsgBox "Bar"
End Sub
...只需直接从您的活动程序中调用它:
Call DoSomethingElse
如果需要,您实际上可以将函数绑定到表单控件的事件,而无需在控件下创建事件过程。要做到这一点,首先需要在模块中使用公共函数而不是sub,如下所示:
Public Function DoSomethingElse()
MsgBox "Bar"
End Function
然后,如果表单上有一个按钮,而不是将[事件过程]放在属性窗口的OnClick事件中,请输入:
=DoSomethingElse()
单击该按钮时,它将调用模块中的公共功能。
如果调用sub看起来像这样:
Call MySub(MyParameter)
然后调用函数看起来像这样:
Result=MyFunction(MyFarameter)
其中Result是函数返回的类型变量。
注意:您并不总是需要Call关键字。大多数情况下,您可以像这样调用sub:
MySub(MyParameter)
答案 1 :(得分:3)
如果pptCreator是同一文件中的函数/过程,则可以将其称为
call pptCreator()
答案 2 :(得分:3)
调用子程序 - 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或Public关键字。这是一个例子:
Private Sub CreateCustomer()
Dim strFullName As String
strFullName = "Paul Bertrand Yamaguchi"
End Sub
应用于全局变量的规则是相同的:
私有:如果某个过程是私有的,则可以由同一模块的其他过程调用它。外部模块的程序无法访问这样的程序。
此外,当某个过程是私有的时,其名称不会出现在“宏”对话框中
公共:作为公共创建的过程可以通过相同模块的过程和其他模块的过程来调用。
此外,如果某个过程是公共的,当您访问“宏”对话框时,会显示其名称,您可以从那里运行它
答案 3 :(得分:1)
传入参数时,模块中的过程开始变得有用且通用。
例如:
Public Function DoSomethingElse(strMessage As String)
MsgBox strMessage
End Function
现在可以显示使用名为strMessage的字符串变量传入的任何消息。
答案 4 :(得分:0)
将功能添加到表单上的新按钮:(并避免使用宏来调用功能)
创建函数(函数MyFunctionName())后,您处于表单设计视图中:
Private Sub Command23_Click()
调用MyFunctionName
End Sub