Public Sub TEST()
Set RECORD_DIC = CreateObject("Scripting.Dictionary")
Set RECORD_INDEX = CreateObject("Scripting.Dictionary")
RECORD_DIC("编号") = 111
RECORD_DIC("内容") = 5678
RECORD_INDEX.Add "a", RECORD_DIC
RECORD_DIC("编号") = 222
RECORD_DIC("内容") = 7890
RECORD_INDEX.Add "b", RECORD_DIC
Debug.Print RECORD_INDEX.Count
Debug.Print RECORD_INDEX("a")("编号")
Debug.Print RECORD_INDEX("b")("编号")
End Sub
'''输出结果都是222 怎么回事?
'''RECORD_INDEX("a")("编号")和RECORD_INDEX("a")("编号") 为什么输出都是'222' ??
解决方案 »
- 怎么才能将msgbox的对话框风格样式做的和windows系统错误对话框一样的风格
- 送分100分:DATAGRID和记录源之间的小问题。
- 关于fpSpread控件列宽的设置问题?
- 怎么禁止向listview重复添加数据?
- 为什么DataEnviront对象关闭之后,重新打开提示3709错误
- 关于Chart控件的兼容问题,请教!!!!!
- 我用imgedit部件来显示tif图像,问:如何实现此部件显示tif图像的局部查看功能?(100分--急)
- 急急!出现死循环!大家快来帮帮我
- 请问在mscomm通讯中RThreshold应该设为多少?我通过敲键或从文件发数据SThreshold应该设为多少
- 告诉我答案,感激不尽,小可拜托众位大侠,还是ado连sql server的问题,送50分
- VB数字溢出
- 请教如何在picture控件中生成色块后鼠标挪上去获得色块信息?
Set RECORD_INDEX = CreateObject("Scripting.Dictionary") Set RECORD_DIC = CreateObject("Scripting.Dictionary")
RECORD_DIC("编号") = 111
RECORD_DIC("内容") = 5678
RECORD_INDEX.Add "a", RECORD_DIC
Set RECORD_DIC = CreateObject("Scripting.Dictionary")
RECORD_DIC("编号") = 222
RECORD_DIC("内容") = 7890
RECORD_INDEX.Add "b", RECORD_DIC
Debug.Print RECORD_INDEX.Count
Debug.Print RECORD_INDEX("a")("编号")
Debug.Print RECORD_INDEX("b")("编号")
End Sub
再看你的代码,RECOD_DIC("key")=value 代表创建(如果已经存在,则是编辑)一个以key为索引,value为被索引值的字典项;最终效果是手工添加一个叫“编辑”的索引,被索引值是111;
手工添加一个叫“内容”的索引,被索引的值是5678;
编辑一个叫“编辑”的索引,被索引值是222;
编辑一个叫“内容”的索引,被索引的值是7890。
明白问题在哪了吗?
有两种改法:
1. 按你现在的思路,维护两个字典,“INDEX -> 编号”映射,“编号 -> 内容”映射
RECORD_DIC(111)=5678
RECORD_INDEX("a")=111
RECORD_DIC(222)=7890
RECORD_INDEX("b")=222
'取值
Debug.Print RECORD_DIC(RECORD_INDEX("a"))
Debug.Print RECORD_DIC(RECORD_INDEX("b"))
2. 只用一个字典,索引用"a", "b",索引值保存一个结构体或者类对象
能用就行,存在即合理;