2012-03-30 74 views
0

我有一個非常複雜的Microsoft Access報告。此報告針對多個客戶運行。我想更改特定客戶的報表上控件的子集**(有噸)的字體,但不適用於其他客戶。由於字體設置在控制級別,是否有可能以編程方式更改它?更改Microsoft Access報告上所有控件的字體

**選擇子集的標準將基於當前的字體。例如,我想改變當前使用Arial的所有控件的字體。

+0

是否要更改字體運行時或在設計視圖?要麼夠簡單。 – Fionnuala 2012-03-30 19:40:28

+0

@Remou,我想在運行時根據客戶ID更改它的子集控件。 – 2012-03-30 19:42:45

回答

3

如何:

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 
1

你可以做類似如下:

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

相關問題