我有一个奇怪的问题。我是 Access 和 VBA 的新手,所以这可能是一个愚蠢的错误。
Private backColorCycle As Integer
Private doneRows As New Dictionary
Private Sub AlternateGroupColor()
If Not doneRows.Exists(Me.JCH_Shape) Then
'... some stuff that assigns a value to backColorCycle
Else
'... some stuff that assigns a value to backColorCycle
End If
doneRows.Item(Me.JCH_Shape) = backColorCycle
Detail.BackColor = QBColor(doneRows.Item(Me.JCH_Shape))
GroupHeader0.BackColor = QBColor(doneRows.Item(Me.JCH_Shape))
End Sub
AlternateGroupColor() 是重复调用的事件处理程序(由 Access 中的 OnFormat 事件)。Me.JCH_Shape 是一个字符串,在一组值中循环两次:调用函数时可能是 A、B、C、A、B、C,所以我想知道何时已经遇到了一个值。我希望通过将值存储在 doneRows 中并检查该值是否已经存在来确定这一点。但是,即使我检查过 Me.JCH_Shape 确实有不同的值,并且 doneRows.Item(Me.JCH_Shape) 确实返回了我在函数末尾期望的值,但 doneRows.Count 永远不会大于 1。看起来好像每次调用子目录时我对字典所做的更改都会重置,我不知道为什么。感觉像是范围问题,但我不能
任何帮助,将不胜感激。谢谢。