vba - MS ACCESS VBA - 一次更改表单文本框的所有属性值的最佳方法
问题描述
我有一个带有 3 个文本框的表单,我想根据某些事件更改它们的属性值。我的想法是将这些属性设置为全局表单的变量,以便在我想要的函数或模块中使用它们(这取决于您的建议)。
假设我想通过按下一个按钮来更改所有 textboxs.enabled 属性,并且我想在将来需要时更改另一个不同的属性(如边框颜色),我的示例是:以 VBA 形式,
Option Compare Database
Option Explicit
Private Const AllTxtboxes = *** all txtboxes ***
在 VBA 按钮中
Private Sub button1_Click()
AllTxtboxes.enabled = True
End sub
提前致谢。
解决方案
您需要遍历所有控件并确定要更改的控件。问题是每种控件类型都有自己的属性,因此您需要确保您使用的是正确的。
为此,所有控件都有一个共同的属性,名为Tag
在那里,您可以指定一个值并检查它。只选择你想要的真的很有帮助。
我用 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 个文本框的前景色会变成红色:
你去吧。因此,每当您想对该数组 textboxes做某事时,您都可以使用此代码循环并更改您想要的属性。
推荐阅读
- javascript - 如何在 Sweet Alert 弹出消息内容中获得价值?
- html - 无论设备类型如何,如何在 HTML 和 CSS 中将动画图像和非动画文本居中?
- http - Nginx 客户端发送了重复的标题行?
- java - 哪一个执行得更快?sql order by 或 java PriorityQueue 或任何其他?
- reporting-services - SSRS 向下钻取报告未正确过滤参数
- python - 使用循环返回顺序在列表中搜索字符串
- python - 如何使用 executemany 将每个 Key 中的第一个值写入数据库
- javascript - 从 React.js 中的 div 获取 ID
- php - PHP AJAX多表单未插入数据库
- ios - 无效的 Swift 支持 - 文件不在预期的位置