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个文本框的前景色会变成红色:
给你。因此,每次您想对 文本框数组 执行某些操作时,您都可以使用此代码循环并更改所需的属性。
我有一个包含 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个文本框的前景色会变成红色:
给你。因此,每次您想对 文本框数组 执行某些操作时,您都可以使用此代码循环并更改所需的属性。