更改 Microsoft Access 报告上所有控件的字体

Posted

技术标签:

【中文标题】更改 Microsoft Access 报告上所有控件的字体【英文标题】:Change font on all controls on Microsoft Access report 【发布时间】:2012-03-30 19:36:22 【问题描述】:

我有一个非常复杂的 Microsoft Access 报告。此报告针对多个客户运行。我想为特定客户更改报告中控件子集** 上的字体(有很多),而不是其他客户。由于字体是在控制级别设置的,是否可以通过编程方式更改它?

**选择子集的标准将基于当前字体。例如,我想更改当前使用 Arial 的所有控件的字体。

【问题讨论】:

您想在运行时还是在设计视图中更改字体?两者都足够简单。 @Remou,我想在运行时根据客户 ID 为控件子集更改它。 【参考方案1】:

怎么样:

Private Sub Report_Load()
If Me.OpenArgs = "1" Then
    ChangeFont Me
End If
End Sub


Sub ChangeFont(rpt As Report)
Dim ctl As Control

    For Each ctl In rpt.Controls
        If ctl.ControlType = acSubform Then
            ChangeFont ctl.Report
        ElseIf ctl.ControlType = acTextBox Then
            If ctl.FontName = "Calibri" Then

                 ctl.FontName = "Times"
            End If
        End If
    Next
End Sub

【讨论】:

【参考方案2】:

您可以执行以下操作:

DoCmd.OpenReport "MyReport", acViewDesign, , , acHidden
For Each ctl In Reports.Item("AmbulanceServices")
  If ctl.FontName = "Arial" Then
    ctl.FontName = "Tahoma"
    ctl.FontSize = 10
  End If
Next
DoCmd.Save acReport, "MyReport"

【讨论】:

这会改变 Keep 的字体,是吗? 是的,它会的。您可以通过在查看模式下打开报表并运行类似代码来避免这种情况 - 无需保存。您还可以最小化报告,这样用户就不会看到发生的变化。 您还需要注意控件,例如您可能不希望更改的标签和没有字体的子表单。

以上是关于更改 Microsoft Access 报告上所有控件的字体的主要内容,如果未能解决你的问题,请参考以下文章

在 microsoft access 2010 表单和报告中显示多个附件

在 Microsoft Access 报告中获取两个计数之间的差异

Microsoft Access 报表 - 如何在打印视图中循环浏览报表的所有页面?

有啥方法可以使用 VBA 更改 Microsoft Access 中表单上的 PopUp 属性?

在 Microsoft Access 报告中的每个组之后重新编号页码

Microsoft Access - 覆盖最大字体大小?