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

问题描述:

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

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

+0

是否要更改字体运行时或在设计视图?要么够简单。 – Fionnuala 2012-03-30 19:40:28

+0

@Remou,我想在运行时根据客户ID更改它的子集控件。 – 2012-03-30 19:42:45

如何:

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 

你可以做类似如下:

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" 
+0

这将改变字体保持,yesno? – Fionnuala 2012-03-30 20:02:32

+0

是的,它会的。您可以通过在查看模式下打开报告并运行类似的代码来避免这种情况 - 而不保存。您还可以最小化报告,以便用户在发生更改时不会看到这些更改。 – 2012-03-30 20:31:24

+1

您还需要注意控件,例如您可能不希望更改的标签以及没有字体的子表单。 – Fionnuala 2012-03-30 20:37:48