2012-03-30 8 views
0

非常に複雑なMicrosoft Accessレポートがあります。このレポートは、複数の顧客に対して実行されます。私は特定の顧客のためのレポートのコントロールのサブセット**(フォントがある)にフォントを変更したいですが、他のフォントは変更しません。フォントはコントロールレベルで設定されているため、プログラムで変更することはできますか?Microsoft Accessレポートのすべてのコントロールのフォントを変更

**サブセットを選択する基準は、現在のフォントに基づいています。たとえば、現在Arialを使用しているすべてのコントロールのフォントを変更したいとします。

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

フォントに実行時またはデザインビューでを変更しますか?いずれも簡単です。 – Fionnuala

+0

@Remou、私は実行時に、顧客IDに基づいて、コントロールのサブセットに対して変更したいと思います。 –

答えて

3

方法について:あなたは、次のような何かを行うことができ

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

これは、keepnoのフォントを変更しますか?yesno? – Fionnuala

+0

はい、そうです。ビューモードでレポートを開き、保存せずに同様のコードを実行することで、これを回避できます。レポートを最小限に抑えて、変更が発生したときにユーザーに表示されないようにすることもできます。 –

+1

また、変更したくないラベルやフォントを持たないサブフォームなどのコントロールも注意する必要があります。 – Fionnuala

関連する問題