MS ACCESS VBA - 一次更改表单文本框的所有属性值的最佳方式

MS ACCESS VBA - best way to change all properties values of a form's textboxes at once

我有一个包含 3 个文本框的表单,我想根据某些事件更改它们的属性值。 我的想法是将这些属性设置为全局窗体的变量,以便在我需要时使用函数或模块(这取决于您的建议)。

假设我想通过按下按钮来更改所有 textboxs.enabled 属性 如果将来需要,我想改变另一个不同的属性(比如bordercolor), 我的例子是这样的: 以 VBA、

的形式
Option Compare Database
Option Explicit
Private Const AllTxtboxes = *** all txtboxes ***

在 VBA 按钮中

Private Sub button1_Click()
AllTxtboxes.enabled = True
End sub

提前致谢。

您需要遍历所有控件并确定要更改的控件。问题是每个控件类型都有自己的属性,因此您需要确保您在正确的控件中。

为此,所有名为 Tag

的控件共有一个 属性

在那里,您可以指定一个值并检查它。 select 随心所欲真的很有帮助。

我制作了一个包含 6 个文本框的简单表单:

请注意,在设计视图中,右侧的属性面板,选项卡 其他,最后一个 属性 是 Tag(有时它显示为 附加信息 或类似信息)。

在那里,我输入了 99,但只在文本框 2、4 和 6 上输入,因为这些是我想要处理的文本框(这将是您的 文本框数组

我添加了一个命令按钮,可以在单击时将这些文本框的前景色更改为红色。我的代码是:

Private Sub CMD_CHANGE_FONT_COLOR_Click()
Me.Painting = False
Dim MyControl As Control
Dim MyTxt As TextBox


For Each MyControl In Me.Controls
    If MyControl.Tag = 99 Then
        'we set MyTxt to MyControl so we can use Intellisense, not really needed, but it makes coding easier
        Set MyTxt = MyControl
        MyTxt.ForeColor = vbRed
        Set MyTxt = Nothing
    End If
Next MyControl

Me.Painting = True

End Sub

加载表单时,您将看到:

但是点击命令按钮后,这3个文本框的前景色会变成红色:

给你。因此,每次您想对 文本框数组 执行某些操作时,您都可以使用此代码循环并更改所需的属性。