请教VB adodc连接 access 里模糊查询的写法问题

Table里有一个字段电话通知,一般有已通知、未通知两种数据。在access里select*fromTablewhere1=1and电话通知like'%通知%'无数据se... Table 里有一个字段 电话通知,一般有已通知、未通知两种数据。
在access里
select * from Table where 1=1 and 电话通知 like '%通知%' 无数据
select * from Table where 1=1 and 电话通知 like '*通知*' 正确得到数据
在vb里
select * from Table where 1=1 and 电话通知 like '%已通知%' 有数据正确
select * from Table where 1=1 and 电话通知 like '*已通知*' 无数据
select * from Table where 1=1 and 电话通知 like '%通知%' 有数据不正确
select * from Table where 1=1 and 电话通知 like '*通知*' 无数据
通过单步调试对照了很多遍,我的确把上述四种方式的string都非常正确的给 rs.open了,但是rs.recordcount就是不对,这究竟是为什么呢?究竟是*还是%还是别的什么?现在%也不对,*也不对,想破头了。
在vb 里
select * from Table where 1=1 and 电话通知 like '%通知%' 无数据
select * from Table where 1=1 and 电话通知 like '*通知*' 无数据
倒数第二条的描述有误,不是有数据不正确, 是无数据
展开
 我来答
梦想倒颠竟究
2013-07-12 · TA获得超过401个赞
知道小有建树答主
回答量:221
采纳率:100%
帮助的人:336万
展开全部
你这是连接用 SQL 语句的问题
在 vb 中通配符就是 %
在 access 中通配符是 *

注意这个区别,就可以了。你有点钻牛角尖,是不是?

哈,你的问题其实简单点说就是 因为 ‘未通知’ 里面包含 '通知'
因此,like %通知% 也包含 未通知,因为 通知包含在 未通知这个字符串里面

使用 = 的写法是(vb) :

select * from Table where 电话通知 = '已通知'
select * from Table where 电话通知 = '未通知'

不明白为什么你前面还加上 1=1
更多追问追答
追问
其实我就是要 查询 通知 时 未通知 和已通知都出来。我说的有数据但不正确,表达有误,其实我用 通知作为查询条件时,两种写法 都没有记录。至于1=1,编程方便,不用判断是不是where后第一个条件,直接 and 上去就可以了。没有容易变成 where and造成错误
我用的也是%了,但现在很悲剧,我发现它%一定要有字符在前或者后,意思就是 %已通知%,%未通知%,%已通%,%未通%,%通知%,都没有结果,只有 %通% 有结果,怎么会这样。在补充一下,上面%改成%%也是一样的结果
不想起名字了99
2018-01-12 · TA获得超过1694个赞
知道大有可为答主
回答量:2708
采纳率:76%
帮助的人:713万
展开全部
adodc like 中用*应该是不对的,*是ACCESS的内部写法。相当于ACCESS中SQL语句的特殊写法。
把你用于测试的语句修改成
select count(*) as F1 from Table where 1=1 and .....
rs.movefirst
msgbox rs.fileds("F1")
看看结果条数判断那条语句是正确的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seniortech
2013-07-12 · 超过17用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:27万
展开全部
既然知道是通知和末通知两种那就直接用 = 别用 like了。。如:
select * from Table where 1=1 and 电话通知 = '通知'
更多追问追答
追问
首先,我写着是 一般是这两种,不代表就是这两种。其次,难道以后like不能用了吗?
追答
用= 会比较准确,如你的这句:select * from Table where 1=1 and 电话通知 like '%通知%'      得到的结果中会是 通知 和末通知 两种状态的全出来了。。所以我建议你用 = 查询
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式