我知道对于外面的人来说这是一个简单的问题,但我从来没有真正使用过功能模块,因为我不明白它们是什么。
所以我有一大堆东西可以用来(减少冗余),但我想知道我如何从表单调用子(如按钮单击)过程。
我试过这个...
Sub Command_Click()
Call "pptCreator"
End Sub
我知道这很糟糕,但我不知道如何将其纳入程序。
我知道对于外面的人来说这是一个简单的问题,但我从来没有真正使用过功能模块,因为我不明白它们是什么。
所以我有一大堆东西可以用来(减少冗余),但我想知道我如何从表单调用子(如按钮单击)过程。
我试过这个...
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
然后,如果您在表单上有一个按钮,而不是将 [Event Procedure] 放在属性窗口的 OnClick 事件中,请输入以下内容:
=DoSomethingElse()
当您单击该按钮时,它将调用模块中的公共函数。
如果调用 sub 看起来像这样:
Call MySub(MyParameter)
然后调用一个函数如下所示:
Result=MyFunction(MyFarameter)
其中 Result 是函数返回的类型变量。
注意: 您并不总是需要 Call 关键字。大多数时候,你可以像这样调用 sub:
MySub(MyParameter)
如果 pptCreator 是同一文件中的函数/过程,则可以如下调用它
call pptCreator()
调用子程序 - 3 Way 技术
一旦你有了一个过程,无论是你创建的还是它是 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
应用于全局变量的规则是相同的:
Private:如果一个过程是私有的,它可以被同一模块的其他过程调用。外部模块的程序不能访问这样的程序。
此外,当一个过程是私有的时,它的名称不会出现在“宏”对话框中
公共:创建为公共的过程可以被同一模块的过程和其他模块的过程调用。
此外,如果一个过程被创建为公共的,当您访问“宏”对话框时,它的名称会出现,您可以从那里运行它
当您传入参数时,模块中的过程开始变得有用和通用。
例如:
Public Function DoSomethingElse(strMessage As String)
MsgBox strMessage
End Function
现在可以显示使用名为 strMessage 的字符串变量传入的任何消息。
将函数添加到表单上的新按钮:(并避免使用宏调用函数)
创建函数 (Function MyFunctionName()) 并进入表单设计视图后:
添加一个新按钮(我认为您不能重新分配旧按钮 - 但不确定)。
当按钮向导窗口打开时,单击取消。
转到按钮属性事件选项卡 - 单击时 - 字段。
在该字段下拉菜单中选择:事件过程。
现在单击包含...的下拉菜单旁边的按钮,您将被带到Visual Basic 窗体窗口中的新Private Sub。
在那个 Private Sub 类型中: Call MyFunctionName
它应该看起来像这样:
Private Sub Command23_Click()
Call MyFunctionName
End Sub
然后保存它。