我有一个用于存储ID的全局收集对象。
Dim newCollection As New Collection
当用户点击btn
Private Sub btn_Click()
Dim key As Variant
newCollection.ADD Me.ID, CStr(ID)
For Each key In newCollection
Debug.Print key
Next key
End Sub
当用户在表单中的ID为1并按下上方的按钮时,我会在即时窗口中返回预期的1
但是,当A用户以表单的形式移至另一条记录时,我们使用表单导航按钮将ID从1更改为2。
由于某些原因,Debug.Print key
返回
2
2
而不是预期的
1
2
由于某种原因,密钥不会被覆盖,但值会被覆盖。我的意思是那个
在我的直接控制台上:
?newCollection(1)
返回2
和
?newCollection(2)
还返回2
我不知道为什么会这样
答案 0 :(得分:3)
更改此...
newCollection.ADD Me.ID, CStr(ID)
对此...
newCollection.ADD Me.ID.Value, CStr(ID)
在第一种情况下,您要添加一个字段对象。因此,以后Debug.Print key
时,您正在打印该字段的当前值。 (如果您暂时执行Debug.Print TypeName(key)
,这可能会更有意义。)
您需要添加字段的值,而不是字段本身。