更改 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 属性?