我正在尝试将一些项添加到字典对象(数据库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
即。用户单击按钮,首先认为发生的是上面的块,以确认旧密钥具有其原始值,但它们没有。它们已经被“新价值”所取代。之后运行该块确认了这一点。
为什么会这样?
答案 0 :(得分:3)
问题是你没有添加TextBox的文本,而是添加TextBox而不是
如果您将代码更改为以下代码,则应该
If txtPercentOfStream <> "" Then
Dim PickListID As Integer, PercentOfStream As Integer
PercentOfStream = txtPercentOfStream
PickListID = cboCoalTypes
If Not CoalsInStreamDic.Exists(PickListID) Then
CoalsInStreamDic.Add PickListID, PercentOfStream
End If
Else
Exit Sub
End If