当前位置:编程学习 > VB >>

送分了!access2003中sql访问得奇怪现象

我用access2003开发一个系统,语言是vb,但是在访问sql语句时发生一奇怪现象:

代码如下:
   sql = "SELECT * FROM SK_STS_WK WHERE STNO = 2;"
   Set STS = db.OpenRecordset(sql, dbOpenDynaset)

问题:
如果where条件写为:stno = 2;
运行时就会提示:抽出条件数据类型不一致
但是如果改为:stno = '2',运行就正常了

但是stno在数据库中是number类型的阿?
太奇怪了,哪位大侠知道啊? --------------------编程问答-------------------- --------------------编程问答-------------------- 结帖率:120.00% --------------------编程问答-------------------- 道理没有错,字符字段,才需要用引号,建议lz用ado方法 --------------------编程问答-------------------- 应该与你这个帖子一样都有大小写的问题。 --------------------编程问答-------------------- 删除2后而面的分号!
不是2;而是2 --------------------编程问答-------------------- 路上堵车,来晚了,帮顶 --------------------编程问答-------------------- 樓主仔細檢查數據類型,應當是類型問題了。 --------------------编程问答-------------------- 最后那个;要他干嘛? --------------------编程问答-------------------- sql = "SELECT * FROM SK_STS_WK WHERE STNO = 2" 
  Set STS = db.OpenRecordset(sql, dbOpenDynaset) 
--------------------编程问答-------------------- 我侧试过了,不是;的问题,     就是我说的加不加‘’的问题 --------------------编程问答-------------------- 到底是为什么呢,奇怪 --------------------编程问答--------------------
引用 11 楼 wwf123456 的回复:
到底是为什么呢,奇怪


我用access2003,用dao测试没有问题,你的的确怪 --------------------编程问答-------------------- 我就是用的access2003啊 --------------------编程问答--------------------
引用 13 楼 wwf123456 的回复:
我就是用的access2003啊

数据库中是NULL,

NULL != 2 
--------------------编程问答-------------------- 结帖率:120.00%  --------------------编程问答-------------------- 再次确认STNO字段数据类型究竟是哪种类型型,Long,Byte,Float,Double,Integer,GUID这些都是数值型,你仔细看看究竟是哪种,是不是自己看错了,字段类型不是字段里存储的数据类型,不是说你往里写的都是数字那个字段就是Number型。 --------------------编程问答-------------------- 顶一下!!! --------------------编程问答-------------------- 试一试我这个,这个是写好的函数,你需要带入Sql语句即可。 --------------------编程问答-------------------- http://download.csdn.net/source/1498324 --------------------编程问答-------------------- 代入
引用 18 楼 veron_04 的回复:
试一试我这个,这个是写好的函数,你需要带入Sql语句即可。
--------------------编程问答-------------------- 我在ACCESS数据库中运行和你的选择语句类似的语句可以运行哦,如SELECT *
FROM tk where pri=2;其中pri就是数字类型的,是不是你安装的文件有问题啊?

要不你在ACCESS数据库中运行下你的语句试试,如果可以的话,那可能就是你编程软件的问题了。 --------------------编程问答-------------------- 数据库中该字段是number(10),数据库是oralce10g --------------------编程问答--------------------
引用 22 楼 wwf123456 的回复:
数据库中该字段是number(10),数据库是oralce10g

前面不是说用的ACCESS吗 --------------------编程问答-------------------- --------------------编程问答--------------------
是Oracle、Access不分,还是来逗你们玩! --------------------编程问答--------------------
引用 2 楼 king06 的回复:
结帖率:120.00%


.... --------------------编程问答-------------------- 路过!学习! --------------------编程问答-------------------- VB能用ACCESS2003数据库吗?只支持ACCESS97、2000 --------------------编程问答-------------------- 是在access中开发的FORM框架,数据库是oracle10g --------------------编程问答-------------------- 你好牛呵!在ACCESS数据库中利用VB操作oracle10g --------------------编程问答-------------------- 是不是用了链接表,将该链接表重建一次试试。

又:用微软的 Access 去访问 Oracle,你怎么选的方案,不知道同行是冤家吗? --------------------编程问答-------------------- 如果你在stno里存的数在-2147483648至2147483647之间的话,建议你还是用Integer型替代把,反正也没有小数部分。 --------------------编程问答-------------------- 接分
--------------------编程问答-------------------- 我也来顶下  --------------------编程问答-------------------- d
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,