【问题标题】:Permanently affect ms-access control properties using VBA使用 VBA 永久影响 ms 访问控制属性
【发布时间】:2011-03-25 12:54:42
【问题描述】:

我在 QA 中有一个相当大的 Access 应用程序。我遇到了一些问题,比如“有些标签是粗体的,有些不是”,考虑到这个应用程序的发展方式,这并不奇怪。我想编写一些运行一次并设置控件属性的代码,而不是在表单打开时运行以设置每个控件的属性的代码。我可以做后者,但直到今天才真正考虑过前者。在这么多表单上有这么多标签,我想编写一个循环遍历我所有控件的函数,设置标签的字体粗细并将其保存为该控件的值。

我可以在控件中循环,找到标签,但实际上设置属性并永久保存它,而不是在某些触发事件上做这件事让我很难过。有人做过吗?

提前感谢您的帮助!

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    我部分地做了这个,所以你可能需要调整它。只需关闭所有表单并运行此过程。

    预先警告:这会将您的所有标签设置为粗体。大多数字体在加粗时会变宽,因此您可能需要在执行此操作后调整表单布局。我强烈建议您在尝试之前备份 .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 
    

    【讨论】:

    • 太棒了!非常感谢。这正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    相关资源
    最近更新 更多