ms-access - 字典使所有键的值等于最近的键/值相加

标签 ms-access vba dictionary ms-access-2010

我正在尝试将一些项目添加到字典对象(数据库 ID 和值对),让用户在提交之前确认他们的选择。我有以下代码部分,它向字典中添加了一个项目。添加后,我循环遍历 Dictionary.Keys 并将每个键/值打印到列表框供用户查看。我的字典对象是我表单上的一个公共(public)变量,并在 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

即用户单击按钮,首先认为发生的是上面的 block ,以确认旧键具有其原始值,但它们没有。它们已经被“新值”所取代。之后运行该 block 可确认这一点。

为什么会这样?

最佳答案

问题是您没有添加 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

关于ms-access - 字典使所有键的值等于最近的键/值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11418919/

相关文章:

visual-studio - 使用 Visual Studio 2015 开发 MS Access 2016 AddIn (Ribbon/VSTO)

ms-access - 如何为MS Access 2007更新前端

vba - 查找不包含在另一个查询中的记录

python - python中元组的多嵌套字典

ms-access - 使用 VBA 替换 MS Access 中的模块文本

vba - 在单元格中放置命令按钮 MS Excel vba

excel - 显示单元格中选定的切片器项目

vba - 如何自动移动列表框上的滚动条以显示所选项目 - VBA

python - 从大量字典创建字典的最快方法

python - 如何找到一个键的多个值的平均值?