注册 登录
编程论坛 VB6论坛

数值转换问题!不明白!求教版主高手!!!

wxflw 发布于 2012-11-23 15:25, 472 次点击

rs.Fields("价格")这里的价格是数字类型
rs.Fields("单位")这里的单位是文字类型
为什么下面的输出提示类型不匹配?=后面的是不是要转换?怎么转换?还是前面的要动?指点一下
rs.Fields("价格") = rs.Fields("价格") & rs.Fields("单位")

[ 本帖最后由 wxflw 于 2012-11-24 08:23 编辑 ]
9 回复
#2
风吹过b2012-11-23 16:39
rs.Fields("价格") & rs.Fields("单位")

因为你的的运算符是 & ,生成的结果就是 字符型,也就是文本类型。
而你的 rs.Fields("价格") 是 数字类型,当 生成的结果无法转换为 数字类型时,就会报 类型不匹配。

这种情况 下,有你可以 显式转换。

rs.Fields("价格")=val(rs.Fields("价格") & rs.Fields("单位"))

val 试图把字符串转为化最大可能的数值。
#3
wxflw2012-11-23 18:53
那是不是有可能转换会有几率出错?
然后val(rs.Fields("单位"))的值等于0!比如我的单位是字符型:/月  那么他的结果就会出错!比如价格是100
那么rs.Fields("价格")=val(rs.Fields("价格") & rs.Fields("单位"))的结果就是rs.Fields("价格")=100那个"/月"就没有了的!这个怎么处理?
我是要处理:Set MSHFlexGrid1.DataSource = rs  表格的价格需要显示的格式是:100/月
在数据库里价格和单位是分开的价格是100单位是/月
 
 

 

[ 本帖最后由 wxflw 于 2012-11-23 19:57 编辑 ]
#4
bczgvip2012-11-23 20:24
sMyShowData$ = rs.Fields("价格") & rs.Fields("单位")
'一定要把显示数据写到数据库么?
#5
wxflw2012-11-23 20:50
这个不行的,是这样的!我在数据库中查询到记录。
在记录中有两个字段"价格"和单位"两个字段的值
比如:价格=100  单位=/月
那么查询数据库后会返回两个值
rs.Fields("价格")这里的价格是数字类型
rs.Fields("单位")这里的单位是文字类型
rs.Fields("价格")这里的价格是“100”
rs.Fields("单位")这里的单位是“/月”
那么在表格里会分两列显示“价格”和“单位”
 Set MSHFlexGrid1.DataSource = rs  
我现在是想将价格和单位合并在一个单元格里显示
在还有两个单元格的合并里没有出现问题,代码如下
 rs.Fields("楼号") = rs.Fields("楼号") & "号-" & rs.Fields("房号")
因为都是字符串型所以没有出错
但是在下面这里就出错了
rs.Fields("价格") = rs.Fields("价格") & rs.Fields("单位")
因为价格和单位不是同一个类型,转换的时候还是出错了,不管将价格转换为字符串还是单位转换成数据型都出错,
可能和=号前面的rs.Fields("价格") 类型有关,不知道怎么弄的!
#6
Artless2012-11-24 11:08
rs.Fields("价格")这里的价格是数字类型
 rs.Fields("单位")这里的单位是文字类型
 rs.Fields("价格")这里的价格是“100”
 rs.Fields("单位")这里的单位是“/月”
 rs.Fields("价格") = rs.Fields("价格") & rs.Fields("单位")
肯定出错左边是数字类型右边是文字类型
#7
wxflw2012-11-24 11:45
这个怎么处理?“=”左右两边的rs.Fields("价格")都转换吗?但是“=”左边的不能用转换函数的呀!
#8
风吹过b2012-11-24 13:09
那你把价格这个 字段改为字符型吧。
#9
bczgvip2012-11-24 15:34
话说调试下,让咱们瞅瞅那是什么类型。
debug.print "价格 type:";rs.Fields("价格").type
#10
wxflw2012-11-24 16:13
直接这么干了!也行,就是怪怪的,测试的数据多的时候那两列数据像两条龙往下跑!速度不咋地!
With MSHFlexGrid1
     .Col = 1
     For i = 1 To .Rows - 1
        .Row = i
        .CellFontSize = 6
        .TextMatrix(i, 1) = .TextMatrix(i, 1) & "号-" & .TextMatrix(i, 2)
        .TextMatrix(i, 3) = .TextMatrix(i, 3) & .TextMatrix(i,4)
     Next
    End With

[ 本帖最后由 wxflw 于 2012-11-24 16:14 编辑 ]
1