循环一个记录集并添加到Dictionary / Collection:item键存在

时间:2018-10-21 18:45:18

标签: vba ms-access access-vba

第一个vba / access项目,由于某种原因,我似乎无法通过循环将一个项目添加到集合或字典中:

     Dim current_stock As Scripting.Dictionary

     Set current_stock = New Scripting.Dictionary

current_stocks_sql = "SELECT id, size,stock FROM bags"

 Set rs = db.OpenRecordset(current_stocks_sql)
' On Error Resume Next
 Do While Not rs.EOF
 current_stock.add rs!id, rs!stock
 MsgBox rs!id ' gives 1,2,3 correctly
 rs.MoveNext

 Loop
 'On Error GoTo 0

 rs.Close

到达ID 2时,会给出错误项密钥已经存在。

1 个答案:

答案 0 :(得分:4)

Dictionary.Add允许您将对象存储为键。

Dictionary.Add rs!id, rs!stock不会将两个值添加到字典中,而是两个字段对象,即ID字段和stock字段。

移至下一条记录后,字段对象仍然相同,因此您得到 Item键已经存在错误。

添加值而不是字段对象:

current_stock.add rs!id.Value, rs!stock.Value