我在QA中有一个相当大的Access应用程序。我已经遇到了一些问题,比如“有些标签是粗体的,有些不是”,考虑到这个应用的发展方式,这并不奇怪。我想编写一些运行一次的代码并设置控件属性,而不是在窗体打开时运行的代码来设置每个控件的属性。我可以做后者但直到今天才从未真正考虑过前者。在这么多表格上有很多标签,我想编写一个循环遍历所有控件的函数,设置标签的字体粗细并将其保存为该控件的值。
我很好骑自行车通过控件,找到标签,但实际上设置属性并永远保存它,而不是做一些触发事件让我感到困惑。有人做过吗?
提前感谢您的帮助!
答案 0 :(得分:3)
我做了一部分袖手旁观,所以你可能需要调整它。只需关闭所有表单并运行此过程即可。
预先警告:这会将您的标签的所有设置为粗体。大多数字体在加粗时会变宽,因此您可能需要在执行此操作后调整表单布局。我强烈建议您在尝试之前备份.mdb。
Sub SetFormProperties()
Dim ao As AccessObject, Frm As Form, Ctl As Control
For Each ao In CurrentProject.AllForms
If ao.IsLoaded Then
Debug.Print ao.Name; " skipped...form was already loaded"
Else
DoCmd.OpenForm ao.Name, acDesign
Set Frm = Forms(ao.Name)
'-------------------'
'Set properties here'
For Each Ctl In Frm.Controls
If Ctl.ControlType = acLabel Then
Ctl.FontWeight = 700
'---OR---'
Ctl.FontBold = True
End If
Next Ctl
'-------------------'
DoCmd.Close acForm, Frm.Name, acSaveYes
End If
Next ao
End Sub