第一个 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 时,它给出错误项键已经存在。
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)