我知道这对于某人来说是一个简单的问题,但我从未真正使用过功能模块,因为我不明白它们是什么。

所以我有一大堆可以用它来做的事情(减少冗余),但我想知道如何从表单调用子过程(如按钮单击)。

我试过这个...

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()) 后,您将进入表单设计视图:

  1. 添加一个新按钮(我认为您不能重新分配旧按钮 - 但不确定)。
  2. 当按钮向导窗口打开时,单击取消。
  3. 转至按钮属性事件选项卡 - 单击时 - 字段。
  4. 在该字段下拉菜单中选择:活动程序。
  5. 现在单击下拉菜单旁边的按钮...在其中,您将被带到一个 新的 Visual Basic 窗体窗口中的 Private Sub。
  6. 在该 Private Sub 类型中:调用我的函数名称
    它应该看起来像这样:

私有子Command23_Click()

调用我的函数名称

结束子

  1. 然后保存即可。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top