细节带的格式事件每行执行多次

时间:2015-01-21 15:54:50

标签: ms-access format access-vba report

我的代码在数据更改时交替着色行。 当我正在研究一个异常,其中一条线没有改变,我应该发现Access不止一次地查看每条线。

为什么不止一次查看数据?

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

Dim test As String

If IsNull(Text158.Value) Then
    pubstrFirstDetaildata = ""
Else
    pubstrFirstDetaildata = Text158.Value
End If

If pubstrFirstDetaildata <> pubstrLastDetaildata Then
    backcolorCount = backcolorCount + 1
    If backcolorCount Mod 2 = 1 Then
        Me.Detail.BackColor = Val("&H" & "EDEDED")
        Me.Box160.BackColor = Val("&H" & "EDEDED")
    Else
        Me.Detail.BackColor = vbWhite
        Me.Box160.BackColor = vbWhite
    End If

End If

If IsNull(Text158.Value) Then
    pubstrLastDetaildata = ""
Else
    pubstrLastDetaildata = Text158.Value
End If
Text177 = backcolorCount
End Sub

1 个答案:

答案 0 :(得分:2)

  

为什么不止一次查看数据?

根据参数列表中的FormatCount参数的建议,Format波段的Detail事件可以针对记录源中的给定行触发多次,具体取决于发生的情况正在呈现报告。例如,如果报告已定义了一个或多个组,并且其中一个组已启用“保持在一起”,则可能存在一种可能性

  • Format事件第一次触发给定行
  • 当报告继续呈现时,后续行可能导致该组溢出到下一页,所以
  • 报告会启动一个新页面并“备份”到组的开头,再次Format这些行。

如果您想确保Format事件中的代码每行只执行一次,那么您可以将其放在If FormatCount = 1 Then块中。