VBA字典表现不尽如人意

时间:2016-09-16 12:56:34

标签: vba dictionary access-vba

在Access VBA中使用词典,但检索值是一个问题。任何人都可以告诉我如何解决这个问题,或者我做错了什么?

所以我循环了一些代码并设置了字典

{{1}}

数据集中的.Fields值表示从表中提取的单行数据,字典按预期设置。

稍后访问字典以检索值会导致问题: serviceRequestId = dict("服务请求ID")正在向字典添加一个新密钥,好像该密钥不存在,但确实如此,所以我添加了一个重复的密钥!这适用于我尝试从字典中检索的任何键值。解除引用之前的制动点显示正确设置的字典没有改变,并且在循环期间添加的键确实存在。

对此的任何想法都非常感激!

1 个答案:

答案 0 :(得分:4)

字典可以将任何类型的对象存储为键或值

这一行将Field对象本身存储为键而不是它的值。

If Not dict.Exists(.Fields(i)) Then

在图表中,我将Field对象存储在dict中,并在locals窗口中进行了检查。

enter image description here

这是你真正想做的事情

    If Not dict.Exists(.Fields(i).Value) Then
        dict.Add .Fields(i).Value, dictValue
    Else
        'Duplicate column name error
        Err.Raise 514
    End If