问题描述
我知道这对外面的人来说是一个简单的问题,但我从来没有真正使用过功能模块,因为我不明白它们是什么.
I know this is a simple question for someone out there, but I have never really used function module at all because I did not understand what they were.
所以我有很多东西可以用它来做(减少冗余),但我想知道我如何从表单调用子(如按钮点击)过程.
So I have a whole bunch of things I can use this for (cut down on redundancy), but I want to know how I call into a sub (like a button click) procedure from a form.
我试过了...
Sub Command_Click()
Call "pptCreator"
End Sub
我知道这很糟糕,但我不知道如何将其纳入程序.
I know that is pretty bad, but I have no idea how to bring this into a procedure.
推荐答案
以下是您在 Microsoft Access 中调用事物的一些不同方式:
Here are some of the different ways you can call things in Microsoft Access:
您调用的表单中的子必须是公开的,例如:
The sub in the form you are calling MUST be public, as in:
Public Sub DoSomething()
MsgBox "Foo"
End Sub
像这样调用子程序:
Call Forms("form1").DoSomething
在您拨打电话前必须打开该表格.
The form must be open before you make the call.
要调用一个事件过程,你应该在表单中调用一个公共过程,并在这个公共过程中调用事件过程.
To call an event procedure, you should call a public procedure within the form, and call the event procedure within this public procedure.
Public Sub DoSomethingElse()
MsgBox "Bar"
End Sub
...直接从你的事件过程中调用它:
...just call it directly from your event procedure:
Call DoSomethingElse
在不使用事件过程的情况下从窗体调用子例程
如果需要,实际上可以将函数绑定到窗体控件的事件,而无需在控件下创建事件过程.为此,您首先需要模块中的公共函数而不是子函数,如下所示:
To call a subroutine from a form without using an event procedure
If you want, you can actually bind the function to the form control's event without having to create an event procedure under the control. To do this, you first need a public function in the module instead of a sub, like this:
Public Function DoSomethingElse()
MsgBox "Bar"
End Function
那么,如果你在窗体上有一个按钮,不要把[Event Procedure]放在属性窗口的OnClick事件中,而是把这个:
Then, if you have a button on the form, instead of putting [Event Procedure] in the OnClick event of the property window, put this:
=DoSomethingElse()
当你点击按钮时,它会调用模块中的公共函数.
When you click the button, it will call the public function in the module.
如果调用 sub 看起来像这样:
If calling a sub looks like this:
Call MySub(MyParameter)
然后调用一个函数看起来像这样:
Then calling a function looks like this:
Result=MyFunction(MyFarameter)
其中 Result 是函数返回的类型变量.
where Result is a variable of type returned by the function.
注意:您并不总是需要 Call 关键字.大多数情况下,您可以像这样调用 sub:
NOTE: You don't always need the Call keyword. Most of the time, you can just call the sub like this:
MySub(MyParameter)
这篇关于将 VBA 函数调用到子过程中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!