主题:  if rs("条件") then 提示类型错误 怎么处理

gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#12006/12/18 14:35:29
其中rs("条件"字段值为 rs(id)<6 或者类似的条件,请问要怎样转换才行



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#22006/12/19 9:16:12
类型错误??!!
条件不成立吧,看看数据类型是否一致吧。


难人一个……

gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#32006/12/19 9:45:09
是不是我的方法有误
比如直接 if rs(id)<6 or rs(id)>12 then 这样可以直接编译
但是如果把rs(id)<6 or rs(id)>12入库,r然后
if rst(tj) then 这样得出来的条件不是个表达式,而是一个字符串,2者需要怎样的转化
直接在用eval转换 不过得出的结果有误



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#42006/12/19 10:45:46
if rst(tj) then??
这是什么什么函数?


难人一个……

gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#52006/12/19 11:46:55
rst是记录集



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#62006/12/19 12:07:01
可否把完整的程序附上?
if rst(tj) then 这样得出来的条件不是个表达式,而是一个字符串,2者需要怎样的转化

这个返回的是一个字符串?布尔值?数值?还是其它的数据类型????


难人一个……

gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#72006/12/19 14:54:22
打开数据库1,得到tj值: rs(“id”)<2 or rs(“id”)>5
tj=rst("语句"
打开数据库2,判断条件是否成立
if tj then pp=pp+1
这个时候提示我类型错误
如果直接写成
if rs(“id”)<2 or rs(“id”)>5 then 这样判断是没问题的
现在问题是所有判断条件都入库,我需要读取数据库才知道条件到底是什么



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#82006/12/19 15:31:27
是ACCESS数据库吧。
VB的变量全是变体形的,建议在数值对比时最好用函数把数据类型统一一下,要不然是会出现这样的情况的。

另外你的tj=rst("语句"不明白是什么类型,不过你的tj既然敢拿到if语句里来,那它只能是布尔值了,有点意思,想知道tj得到的结果是什么。


难人一个……

janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#92006/12/20 11:19:28
楼主的问题实际上是 javascript 中很常见的 eval() 问题。幸运的是,VBScript 也支持这个函数。所以这个问题解决很简单:
If Eval(rst(tj)) Then ...


FYI:
www.aspdev.org/articles/asp-eval-execute/
www.devguru.com/technologies/vbscript/QuickRef/eval.html



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#102006/12/20 11:40:12
昨天还在对楼主的这种编程方式满腹牢骚,看来大错特错的是我,今天才算是有所领悟此函数的用途,知之甚少,谢谢janlay.


难人一个……