access 模糊查询like 为何查询不出来,请问错在哪里?

wallyhost5 2012-05-14 10:45:04
procedure TForm8.Button4Click(Sender: TObject);
begin
with ADOQuery2 do
begin
close;
SQL.Clear;
SQL.Add('Select * from insp where a,b,c,d like'+''''+'%'+Trim(edit1.Text)+'%'+'''');
open;
end;
end;

注:我用的是ADO连接的access数据库。
access 模糊查询like 为何查询不出来,请问错在哪里?请高手解答!
...全文
926 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmakebest 2013-11-14
  • 打赏
  • 举报
回复
感觉这语句已经报错了吧
learn_2 2013-11-14
  • 打赏
  • 举报
回复
access 与sql server中的通配符不一样,你用*替换%就OK了
wzwcn 2012-05-15
  • 打赏
  • 举报
回复
access里用like不能用&,把&改成*就行了.

Add('Select * from insp where d like '+Quotedstr('*'+Trim(edit1.Text)+'*'));
fanzg008 2012-05-15
  • 打赏
  • 举报
回复
var a1,a:string;
a1:='%'+edit1.text+'%';
a:='select * from 数据表 where 查询字段 like '''+a1+'''';
adoquery2.close;
adoquery2.sql.clear;
adoquery2.sql.add(a);
adoquery2.open;


shuihan20e 2012-05-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

二楼的方法还是没用,点击模糊查询,显示的还是全部,没有动。为什么?
[/Quote]
放ACCESS里试试
sz0557it 2012-05-15
  • 打赏
  • 举报
回复
解决了吗?
wallyhost5 2012-05-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

Prepared;这个可以不要;

打开你的access和表,一条条对照看,到底没有符合的记录
另外,记录在那里显示,DBGrid? 和ADOQuery2关联了吗?

LZ在考我们智商呢,鉴定完毕...
[/Quote]



Select * from insp where a like '%学习%'
这个在access里是可以查询的。
wallyhost5 2012-05-15
  • 打赏
  • 举报
回复
access里能查询,但在delphi的dbgrid里就不行了。

adquery2里的SQL 的TStrings里我填入了:select * from insp
双击adquery2,字段全部选了
parameters的Tparameters我没有动
kaikai_kk 2012-05-15
  • 打赏
  • 举报
回复
Prepared;这个可以不要;

打开你的access和表,一条条对照看,到底没有符合的记录
另外,记录在那里显示,DBGrid? 和ADOQuery2关联了吗?

LZ在考我们智商呢,鉴定完毕...
wallyhost5 2012-05-15
  • 打赏
  • 举报
回复
我说的是一楼的不行,上面看错了楼层。
wallyhost5 2012-05-15
  • 打赏
  • 举报
回复
二楼的方法还是没用,点击模糊查询,显示的还是全部,没有动。为什么?
wallyhost5 2012-05-15
  • 打赏
  • 举报
回复
楼上,下面两种虽然不显示错误,但点击按钮后,根本不动,还是所有的记录在那,为什么呢?
procedure TForm8.Button4Click(Sender: TObject);
begin
with ADOQuery2 do
begin
close;
SQL.Clear;
SQL.Add('Select * from insp where a like ''%学习%''');
Prepared;
open;
end;
end;

procedure TForm8.Button4Click(Sender: TObject);
begin
with ADOQuery2 do
begin
close;
SQL.Clear;
SQL.Add('Select * from insp where a like ''*学习*''');
Prepared;
open;
end;
end;
看那山瞧那水 2012-05-15
  • 打赏
  • 举报
回复
不过要用*代替%
SQL.Add('Select * from insp where a like ''*学习*''');

ACCESS的文档中有这么一句话:
请注意,ANSI SQL 通配符 (%) 和 (_) 仅在 Microsoft® Jet 4.X 版本和 Microsoft OLE DB Provider for Jet 中才是有效的。如果用在 Microsoft Access 或 DAO 中,那么它们被视为文本。
看那山瞧那水 2012-05-15
  • 打赏
  • 举报
回复
SQL.Add('Select * from insp where a like ''%学习%''');
wallyhost5 2012-05-15
  • 打赏
  • 举报
回复
Select * from insp where a like '%学习%'
在ACCESS中模拟查询没有问题。

但放到delphi就有问题了:delphi显示下面红色显示4个错误。
procedure TForm8.Button4Click(Sender: TObject);
begin
with ADOQuery2 do
begin
close;
SQL.Clear;
SQL.Add('Select * from insp where a like '%学习%');
Prepared;
open;
end;
end;
shuihan20e 2012-05-14
  • 打赏
  • 举报
回复
Select * from insp where a like or b like or c like or d like。。。
哪来的a,b,c,d like你太搞了
kaikai_kk 2012-05-14
  • 打赏
  • 举报
回复
Add('Select * from insp where d like '+Quotedstr('%'+Trim(edit1.Text)+'%'));

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧