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

模糊查询的问题

Adodc1.ConnectionString = getConnectionStr
Adodc1.CommandType = adCmdText
If goodsType = "A" Then
    Adodc1.RecordSource = "select * from goods"
Else
    Adodc1.RecordSource = "select * from goods where goodsid like '*Q*'"
End If
Adodc1.Refresh
End Sub
这是我的模糊查询代码,MSHFGRID已绑定在ADODC1上,我的数据库中有值,而且在ACCESS数据库中,通过该语句,能查到相关的值,但是在VB里却没有数据。
将Adodc1.RecordSource = "select * from goods where goodsid like '*Q*'"改成
Adodc1.RecordSource = "select * from goods where goodsid like 'q1'"
也能查到值
这是为什么呢? --------------------编程问答-------------------- like '*Q*'
改成like '%Q%'好了~~ --------------------编程问答-------------------- 这是VB;VBA(包括ACCess)里的通配符规则

? 任何单一字符。 
* 零个或多个字符。 
# 任何一个数字 (0–9)。 

SQL语言里用'%';'_'做通配符
可能是这个原因吧

--------------------编程问答-------------------- 语句应该为 
 Adodc1.RecordSource = "select * from goods where goodsid like '%Q%'" 
是以 % 号开头的
不是以 * 开头的
呵呵  --------------------编程问答-------------------- 怎么 vb版 改版了哈 --------------------编程问答-------------------- Adodc1.RecordSource = "select * from goods where goodsid like '%Q%'"  --------------------编程问答-------------------- 楼上的,VB里面模糊查询,是用*,这个我已经在ACCESS数据库里查询到数据。
我在我的问题中,已经提到这一点。请大家帮我看看别的问题,谢谢。 --------------------编程问答-------------------- 改成like '%Q%'好了~~  --------------------编程问答--------------------
这是 Jet Engine 的通配符规则在起作用。

无论用什么语言平台,SQL 语句是作为字符串发送的数据库引擎的。然后有引擎来解析和处理。 --------------------编程问答--------------------
引用 6 楼 xjsender 的回复:
楼上的,VB里面模糊查询,是用*,这个我已经在ACCESS数据库里查询到数据。
我在我的问题中,已经提到这一点。请大家帮我看看别的问题,谢谢。

 这个就不知道了
反正我每次向数据库进行 模糊查询 时都是使用 “%”号的 --------------------编程问答--------------------
引用 8 楼 of123 的回复:
这是 Jet Engine 的通配符规则在起作用。

无论用什么语言平台,SQL 语句是作为字符串发送的数据库引擎的。然后有引擎来解析和处理。

支持 --------------------编程问答-------------------- 通配符。。 --------------------编程问答-------------------- 一楼正解 --------------------编程问答-------------------- "select * from goods where goodsid like '%Q%'"
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,