制作模块化VBA功能(MS Access) [英] Making modular VBA function (MS Access)

查看:67
本文介绍了制作模块化VBA功能(MS Access)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个简单的多条件搜索表单. 为第一个切换按钮设置的Access VBA功能如下所示:

I am writing up a simple multi-condition search form. The Access VBA function set for the first toggle button looks like this:

Private Sub ToggleQ1_Click()
Select Case ToggleQ1.Value
    Case True
        CondQ1 = "AND"
        ToggleQ1.Caption = CondQ1
    Case False
        CondQ1 = "OR"
        ToggleQ1.Caption = CondQ1
End Select
End Sub

ToggleQ1 =按钮的名称

ToggleQ1 = button's name

CondQ1 =要与字符串一起使用以创建条件搜索的变量.

CondQ1 = variable to be used with a string to create conditional search.

可能会再创建50个相同的按钮代码,只是名称不同(例如"ToggleQ50"和"CondQ50")

It would likely be absurd to create 50 more of the same button code, differ only in its name (ex. "ToggleQ50" and "CondQ50")

有什么方法可以使其模块化和可重用? 提前非常感谢您.

Is there any way to make it modular and reusable? Thank you very much in advance.

推荐答案

在表单的模块中创建一个类似这样的函数(而不是子函数):

In the form's module create a function (not sub) like this:

Private Function SetCaption()
    Dim clickedButton As Control
    Dim CondQ1 As String

    Set clickedButton = Me.ActiveControl
    Select Case clickedButton.Value
        Case True
            CondQ1 = "AND"
            clickedButton.Caption = CondQ1
        Case False
            CondQ1 = "OR"
            clickedButton.Caption = CondQ1
    End Select
End Function

在表单设计器中,选择所有50个按钮,然后键入属性On Click

In form designer select all 50 buttons and type in property On Click

=SetCaption()

因此,您无需为每个按钮创建事件处理程序.

So, you won't need to create event handler for each button.

这篇关于制作模块化VBA功能(MS Access)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆