MS Access 2007 では、プリンターの制限により、ユーザーごとにレポート ヘッダーに異なる色設定が必要になるという問題があります。すべてのレポートに含まれるレポートとページ ヘッダーの色を変更する手段をプログラムで確立しました。ただし、レポートの約半分にはグループ レベルのヘッダーが含まれています。私の質問は、.AllReports コレクション内のレポートのグループ レベル ヘッダーのインスタンスをどのように識別できるかということです。
Private Sub ChangeHeaderColor(ByVal blnIsObjectLoaded As Boolean, _
ByVal intCounter As Integer, _
ByVal strObjectName As String, _
ByVal strObjectType As AcObjectType, _
ByVal lngHexColor As Long)
On Error GoTo OpenAllReports_Error
Dim rpt As Report
If blnIsObjectLoaded = False Then
DoCmd.OpenReport strObjectName, acDesign, , , acHidden
If intCounter < Reports.Count Then
If IsNull(Reports.Item(intCounter).Section(acGroupLevel1Header)) Then
Set rpt = Reports.Item(intCounter)
rpt.Section(acGroupLevel1Header).BackColor = lngHexColor
End If
End If
End If
...
問題は、GroupLevel ヘッダーを持つレポートのみを識別する正しい If ステートメントを定義することです。2462 ランタイム エラー - 「入力したセクション番号は無効です」をキャプチャする以外の方法を認識していません。