filter如何对多个条件进行检索?

wangqiaoxp 2008-12-06 09:17:26
我想问一下,我如何用dblookupcombobox1,dblookupcombobox2和两个时间之间(datatimepicker)共同来对dbgrid进行检索?

我知道,如果是一个条件的话,是这样的:
begin
with ADOTable2 do
begin
close;
filtered:=false;
Filter := '配件名称=''' + dblookupComboBox1.Text + '''';
Filtered := true;
open;
end
end;

但是多个条件的话该怎么办呢?and好象一直在报错

请高手指点啊
...全文
593 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinxd6112 2008-12-08
  • 打赏
  • 举报
回复
上面忘了把时间转为字符串了
Filter :='配件名称=''' + dblookupComboBox1.Text + ''''
+ ' and 入库单位=''' + dblookupComboBox1.Text + ''''
+ ' and 入库时间>=''' + DateTimeToStr(datetimepicker1.datetime) + ''''
+ ' and 入库时间<=''' + DateTimeToStr(datetimepicker2.datetime) + '''';

如果数据库是access
Filter :='配件名称=''' + dblookupComboBox1.Text + ''''
+ ' and 入库单位=''' + dblookupComboBox1.Text + ''''
+ ' and 入库时间>=#' + DateTimeToStr(datetimepicker1.datetime) + '#'
+ ' and 入库时间<=# + DateTimeToStr(datetimepicker2.datetime) + '#';
yinxd6112 2008-12-08
  • 打赏
  • 举报
回复
Filter :='配件名称=''' + dblookupComboBox1.Text + ''''
+ ' and 入库单位=''' + dblookupComboBox1.Text + ''''
+ ' and 入库时间>=''' + datetimepicker1.datetime + ''''
+ ' and 入库时间<=''' + datetimepicker2.datetime + '''';
qap22 2008-12-08
  • 打赏
  • 举报
回复
帮顶
wangqiaoxp 2008-12-08
  • 打赏
  • 举报
回复
begin
with form4.ADOTable1 do
begin
close;
filtered:=false;

Filter :='配件名称=''' + dblookupComboBox1.Text + ''''+
' and '入库单位=''' + dblookupComboBox1.Text + ''''+ and
'入库时间>='''+datetimepicker1.datetime+'''+
' and '入库时间<='''+datetimepicker2.datetime+''';

Filtered := true;
open;
end

end;
上面这段帮我找下错误,我一直运行不下去?
wangqiaoxp 2008-12-08
  • 打赏
  • 举报
回复
可以了 ,我数据库是ACCESS,但用的是你上面那个方法,就是不加#的。谢谢yinxd6112
yinxd6112 2008-12-07
  • 打赏
  • 举报
回复
把where后面的直接拿出来给filter
没有查询结果就是没有匹配的。你最好在sql查询器里先测下。另建议你用ADOQuery

sqltr := 'select * from a where name = ''' + edt1.Text + '''' + ' and swx='
+ '''test'' and data1 >=' + '''2008-09-21''' + ' and data2 <=' + '''2009-01-01''';
wangqiaoxp 2008-12-07
  • 打赏
  • 举报
回复
还有 两个时间之内 筛选,又该怎么处理?
wangqiaoxp 2008-12-07
  • 打赏
  • 举报
回复
楼上的好心人,我用了你的方法,怎么查询的结果是空啊?怎么查都是空的?
yinxd6112 2008-12-06
  • 打赏
  • 举报
回复
filter其实就是sql语句中的where部分


with tbl1 do
begin
close;
filtered:=false;
Filter := 'name = ''' + edt1.Text + '''' + ' and swx=' + '''test''';
Filtered := true;
open;
end;

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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