Collections VB6字典此键已与此集合的元素关联

Collections VB6字典此键已与此集合的元素关联,collections,dictionary,vb6,runtime-error,Collections,Dictionary,Vb6,Runtime Error,这听起来可能有点奇怪,但事实是: 我的表单遍历了每个客户(+-10000),并打开了一个记录集以获取最后一次访问。由于它的优化效果很差,我决定只进行一次查询,并且我需要存储它以便于访问 我决定使用字典,因为与数组不同,我将能够使用键字符串(客户编号)进行搜索并获取我的项目(字符串:客户的上次访问) 我得到运行时错误“此键已与此集合的元素关联” 有趣的部分就从这里开始,因为我的查询不会返回重复项(我仔细检查了) 调试时,添加了以下值: 第一次迭代:“0000000.”,“2012/05/27” 第

这听起来可能有点奇怪,但事实是:

我的表单遍历了每个客户(+-10000),并打开了一个记录集以获取最后一次访问。由于它的优化效果很差,我决定只进行一次查询,并且我需要存储它以便于访问

我决定使用字典,因为与数组不同,我将能够使用键字符串(客户编号)进行搜索并获取我的项目(字符串:客户的上次访问)

我得到运行时错误“此键已与此集合的元素关联”

有趣的部分就从这里开始,因为我的查询不会返回重复项(我仔细检查了)

调试时,添加了以下值:

第一次迭代:“0000000.”,“2012/05/27”

第二次迭代:“00000001”,“2011/06/14”尝试插入此行时出错

在即时窗口中,如果我写入

dict.add "00000001", "2011/06/14"
添加时没有任何问题

如果我清除字典(dict.removeall),它将输入一个条目(无论客户号是什么),下一个条目将始终失败。如果我在即时窗口中手动输入它(没有变量),它就会工作


你们有什么想法吗?谢谢

我找到了一个解决办法

如果我改变

dict.Add rsLastVisits!CUST_NO, rsLastVisits!LAST

它是有效的

虽然这没有任何意义,因为我的变量已经是字符串了

我就把这个留在这里,作为“已回答”。如果你们中任何一个对Vb6内部有更好了解的人能向我解释发生了什么,我将不胜感激


谢谢

你的例子应该很好用。我能想到的唯一问题是
CUST\u NO
是否不是字符串。尝试此方法并检查是否有不同:

dict.Add CSTR(rsLastVisits!CUST_NO), CSTR(rsLastVisits!LAST)
编辑:
你能发布
CUST\u NO
的数据库定义吗?

假设
LAST
真的是字符串类型,你试过
rslastVisitions了吗!LAST.Value
而不是冒险使用对象而不是其默认属性?使用rslastVisitions.fields(“LAST”)。Value有效。使用.type返回202,它是一个“以Null结尾的unicode字符串”。一根绳子是200。这可能是根本原因。谢谢来源:这是一个nvarchar()。编辑:是的,使用cstr()确实有效。我猜VB6一开始不认识它。因此,字符串连接也可以工作。非常感谢。
dict.Add "" & rsLastVisits!CUST_NO, "" & rsLastVisits!LAST
dict.Add CSTR(rsLastVisits!CUST_NO), CSTR(rsLastVisits!LAST)