在 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
...
问题是定义正确的 If 语句以仅标识具有 GroupLevel 标题的那些报告。除了捕获 2462 运行时错误之外,我不知道任何方法 - “您输入的部分编号无效。”