我正在尝试将一些项目添加到字典对象(数据库 ID 和值对)中,以让用户在提交之前确认他们的选择。我有以下代码部分,它将一个项目添加到字典中。添加后,我循环遍历 Dictionary.Keys 并将每个键/值打印到列表框以供用户查看。我的字典对象是我的表单上的一个公共变量,并在 Form_Load 事件中设置。
Dim PickListID As Integer
If txtPercentOfStream <> "" Then
PickListID = cboCoalTypes
If Not CoalsInStreamDic.Exists(PickListID) Then
CoalsInStreamDic.Add PickListID, txtPercentOfStream
End If
Else
Exit Sub
End If
奇怪的是,每当我添加一个新的键/值对时,新键的值就会变成除新键之外所有现有键的值。
我在与字典交互之前和之后运行这个小块
Dim key As Variant
For Each key In CoalsInStreamDic.Keys
Debug.Print key & "::" & CoalsInStreamDic.item(key)
Next key
Debug.Print
即用户单击按钮,首先想到的是上面的块,以确认旧键具有其原始值,但它们没有。它们已经被“新值”所取代。之后运行该块可以确认这一点。
为什么会这样?