循环记录集并添加到字典/集合:项目键存在

Nie*_*lam 2 ms-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
Run Code Online (Sandbox Code Playgroud)

当它到达 id 2 时,它给出错误项键已经存在。

Eri*_*k A 5

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

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

移动到下一条记录后,字段对象仍然相同,因此您会收到Item key already exists错误。

添加值而不是字段对象:

current_stock.add rs!id.Value, rs!stock.Value
Run Code Online (Sandbox Code Playgroud)