ms-access - MS Access 集合对象值被覆盖
问题描述
我有一个用于存储 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
即时窗口上得到预期的返回
但是当用户移动到表单中的另一条记录时,假设使用表单导航按钮从 ID 1 到 2
出于某种原因, Debug.Print key
回报
2
2
而不是预期的
1
2
由于某种原因,键没有被覆盖,但值被覆盖。我的意思是
在我的即时控制台上:
?newCollection(1)
返回 2
和
?newCollection(2)
也返回 2
我不知道为什么会这样
解决方案
改变这个...
newCollection.ADD Me.ID, CStr(ID)
对此...
newCollection.ADD Me.ID.Value, CStr(ID)
在第一种情况下,您要添加一个字段对象。因此,当您稍后Debug.Print key
,您将打印该字段的当前值。(如果你Debug.Print TypeName(key)
暂时这样做可能更有意义。)
您需要添加字段的值而不是字段本身。
推荐阅读
- reactjs - 打开时控制反应选择菜单滚动位置
- python - 如何在写行时替换一行中第一次出现的字符串
- r - 叠加两个 stat_density 图
- node.js - Nodejs 等待 127.0.0.1:9229 空闲
- powershell - 如何输出到日志文件
- magnolia - 有没有办法在不使用 REST API 的情况下连接到 DAM 存储库?
- acumatica - 访问自定义报告时如何修复 System.MissingMethodException: .ctor?
- c# - 更新下拉列表的排序顺序
- mysql - 如何在格式化的 mysql 查询中删除反引号?
- flutter - 将 Flutter 发布到 google play 64 位问题