如何把记录集结果与变量值相转换

jxftp 2018-04-26 06:46:56
1.程序中有一个listview,
2.程序中定义了一堆变量,并且在系统中已经有了值;
例如
dim M_name,M_type
M_name="花盆":M_type="采购物料"
3.有一个数据库,内有一条记录,内有对应记录
物料名称,M_name
物料类别,M_type
……
N个属性

想通过记录集,把M_type显示,记录显示出来,并转换成变量,取得变量的值,需要怎样处理?
如:
物料名称 ,对应的变量为,M_name,对应的值为 "花盆"
物料类别,对应的变量名为,M_type,对应的值为"采购物料"





...全文
730 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxftp 2018-04-29
  • 打赏
  • 举报
回复
最后还是用 CallByName解决;
jxftp 2018-04-29
  • 打赏
  • 举报
回复
引用 14 楼 of123 的回复:
总之,你现在的实现方案非常蹩脚,实现麻烦,效率低。如果你始终是这种思路的话,恕我直言,你不适合干这一行。
我就是用户。 我希望什么都不要做,我希望前端什么都不需要操作,然后后台配置好后,都能自动实现;
of123 2018-04-28
  • 打赏
  • 举报
回复
你先把什么 Listview、数据库、变量都抛开,详细说明一下你的实际需求。应用提供的原始数据是什么,要向用户显示什么?
of123 2018-04-28
  • 打赏
  • 举报
回复
总之,你现在的实现方案非常蹩脚,实现麻烦,效率低。如果你始终是这种思路的话,恕我直言,你不适合干这一行。
of123 2018-04-28
  • 打赏
  • 举报
回复
另外,从需求出发,你可能有几十种实现方法,你再从中选择,要考虑易于实现、性能好等等因素。 不要上来就是“我要怎样做,我不想怎样做”。
of123 2018-04-28
  • 打赏
  • 举报
回复
你谈的还是实现,不是需求。你不要管什么数据库。你就从用户的角度,说清楚他是如何选择的,最后界面是如何显示的。 你不会是改码智能到能猜测用户要显示什么吧?
jxftp 2018-04-28
  • 打赏
  • 举报
回复
引用 9 楼 of123 的回复:
你先把什么 Listview、数据库、变量都抛开,详细说明一下你的实际需求。应用提供的原始数据是什么,要向用户显示什么?
效果如下: 其中:设备属性是数据库取出的显示名称,备注是我定义的变量,也是数据库中的变量名(记录集名称与变量名称同名) 希望属性值能够根据显示出来
jxftp 2018-04-28
  • 打赏
  • 举报
回复
引用 9 楼 of123 的回复:
你先把什么 Listview、数据库、变量都抛开,详细说明一下你的实际需求。应用提供的原始数据是什么,要向用户显示什么?
举个例子,我用代码取得了计算机的CPU/硬盘信息,并把他们存在变量中; 同时我需要把所有的这些变量(可能有10多个), 全部按条件显示出来; 这个条件,来源于数据库的规则; 如CPU对应的是PC_CPU这个变量; RAM对应的是PC_RAM变量; 我需要把 CPU,显示出来实际的值, RAM显示出实际的值; 我不想一个个输入,而是全部从数据库中取得字段名,然后并把变量值显示出来。
舉杯邀明月 2018-04-27
  • 打赏
  • 举报
回复
昨天晚上来论坛看过,确实是没太明白懂楼主的意图。 如果你是用“数据库”的话,那多半是用“SQL”命令来操作。 需要用数据库连接对象(可用控件,也可以用类对象)打开数据库,执行“查询”获取到记录(记录集)。 然后: 你用的是“独立变量”,那么就要用一系列的赋值语句来从“记录”的相应字体取值,     有多少个变量,你就得写多少行赋值语句; 如果用“数组”,就可以用循环来从记录的各个字段取值了,     大多数情况下,无论多少字段,For循环+赋值,一共就是3行。
脆皮大雪糕 2018-04-27
  • 打赏
  • 举报
回复
可能主要是没看懂你想干啥。 以我的理解,你是想要将记录集中部分字段进行字典转换。 一般这种转换是在数据库里面建立数据字典表,查询的时候关联数据字典表直接完成转换。 如果要在终端进行转换,一般是建立以key值进行检索的哈希表,然后遍历数据,逐行为其匹配字典项。在VB里面可以利用集合对象collection达到用key检索的的效果。 用一堆变量,想动态的使用变量名进行数值提取,基本走不通。
jxftp 2018-04-27
  • 打赏
  • 举报
回复
为什么没有人回答呢?
jxftp 2018-04-27
  • 打赏
  • 举报
回复
1、定义了字典; Dim PCinfo '创建一个变量 Set Minfo = CreateObject("Scripting.Dictionary") 'Dim Minfo As New Dictionary Minfo.Add "M-type", M-type'前面的是KEY,后面的是变量名 2、使用字典,仍然无法取得数据 Lvw_Info.ListItems("first" & CStr(k)).SubItems(1) = Minfo.item("'" & rs("Ffields") & "'") 使用 Minfo.item("M_type"),可取得数据 使用 Minfo.item("'"&rs(Ffields)&"'"),无法取得数据
jxftp 2018-04-27
  • 打赏
  • 举报
回复
引用 6 楼 of123 的回复:
数据库不是这样用的。你先看看别人的数据库应用是怎么做的。
?那是如何用?
of123 2018-04-27
  • 打赏
  • 举报
回复
数据库不是这样用的。你先看看别人的数据库应用是怎么做的。
jxftp 2018-04-27
  • 打赏
  • 举报
回复
引用 2 楼 chewinggum 的回复:
可能主要是没看懂你想干啥。 以我的理解,你是想要将记录集中部分字段进行字典转换。 一般这种转换是在数据库里面建立数据字典表,查询的时候关联数据字典表直接完成转换。 如果要在终端进行转换,一般是建立以key值进行检索的哈希表,然后遍历数据,逐行为其匹配字典项。在VB里面可以利用集合对象collection达到用key检索的的效果。 用一堆变量,想动态的使用变量名进行数值提取,基本走不通。
Dim k: k = 0 While k <= rs.RecordCount - 1 '循环 ret = Lvw_Info.ListItems.Add(, "first" & CStr(k), rs("Fname_cn")) Lvw_Info.ListItems("first" & CStr(k)).SubItems(1) = rs("ffields") Lvw_Info.ListItems("first" & CStr(k)).SubItems(2) = rs("Fname_en") k = k + 1 rs.MoveNext Wend 我之前 dim M_type M_type="采购物料" 然后rs(Ffields)取得的值是 M_type 然后我想让 listview listitems显示出来的结果是 "采购物料",但目前显示出来的是 M_TYPE, 我这样表达,不知道能实现不?
jxftp 2018-04-27
  • 打赏
  • 举报
回复
引用 3 楼 Chen8013 的回复:
昨天晚上来论坛看过,确实是没太明白懂楼主的意图。 如果你是用“数据库”的话,那多半是用“SQL”命令来操作。 需要用数据库连接对象(可用控件,也可以用类对象)打开数据库,执行“查询”获取到记录(记录集)。 然后: 你用的是“独立变量”,那么就要用一系列的赋值语句来从“记录”的相应字体取值,     有多少个变量,你就得写多少行赋值语句; 如果用“数组”,就可以用循环来从记录的各个字段取值了,     大多数情况下,无论多少字段,For循环+赋值,一共就是3行。
Dim k: k = 0 While k <= rs.RecordCount - 1 '循环 ret = Lvw_Info.ListItems.Add(, "first" & CStr(k), rs("Fname_cn")) Lvw_Info.ListItems("first" & CStr(k)).SubItems(1) = rs("ffields") Lvw_Info.ListItems("first" & CStr(k)).SubItems(2) = rs("Fname_en") k = k + 1 rs.MoveNext Wend 我之前 dim M_type M_type="采购物料" 然后rs(Ffields)取得的值是 M_type 然后我想让 listview listitems显示出来的结果是 "采购物料",但目前显示出来的是 M_TYPE,

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧