我想实现4个条件的综合模糊查询 当用任意的两个或两个以上的条件查询的时候实现and的查询 用随意的一个条件查询的时候 也能认定这个唯一的查询条件 朋友告诉我 当选择了条件之后 其他未选的默认成全部的内容 但是 不知道该怎么写这个语句 应该是用if语句吧 请各位朋友帮忙提供个delphi的程序参考一下 或者指点一下 谢谢
解决方案 »
- 请问有河南新乡市的朋友吗,有事请教。
- ■■■如何用VBS脚本随时从外部扩充或修改程序功能和实现有限的自动执行(宏)?
- 怎么动态创建
- 如何为ClientDataset建立引索?(第N次提问)
- 如何在Delphi界面上显示数学公式,比如说均值,标准差等数学符合?
- ExpressQuantumGrid Suite的System.pas的问题
- 底层开发指的是什么啊?
- ★★我有下载了一个 FlatStyle平面界面控件,不知如何安装及使用?请大虾教我,详细点。谢谢!
- 谁有比较大型的管理系统的源代码,给我一份
- 准有ADO的补丁?我的是DELPHI5。5 用ADO+SQLSERVER 在边接上老是有些
- MSCOMM控件怎么读取字符串类型.(在线等,真的很急呀!)
- 问一个关于TXMLDocument读取到汉字出错的问题
aq1.Close;
aq1.SQL.Clear;
aq1.SQL.Add('select a.clid as 材料代號,b.clname as 材料名稱 ,b.cldw as 單位,a.clprice as 單價,a.pricedate as 報價日期 ');
aq1.SQL.Add(' from cailiaoprice a left join cailiao b on a.clid =b.clid ');
aq1.SQL.Add(' left join caizhi c on b.czid =c.czid ');aq1.SQL.Add(' where a.clid<>''0'' ');
aq1.SQL.Add(' and pricedate<='''+formatdatetime('yyyy-mm-dd',dt2.datetime)+''' and pricedate>='''+formatdatetime('yyyy-mm-dd',dt1.datetime)+''' ');
if (Trim(edtmjid.Text)<>'') then
aq1.SQL.Add(' and a.clid like '''+Trim(edtmjid.Text)+'%'' ');
///////////////if (Trim(edtck.Text)<>'') then
aq1.SQL.Add(' and b.clname like ''%'+Trim(edtck.Text)+'%'' ');
///////////////if (Trim(edtczname.Text)<>'') then
aq1.SQL.Add(' and c.czname like ''%'+Trim(edtczname.Text)+'%'' ');
///////////////
aq1.Open;
条件都用edit输入。这样的条件可以无限扩展,100个条件都没关系。这个问题太简单了
var
sql :String; sql := 'select * from your_table where 1=1';
if checkbox1.checked then
sql := sql + ' and field1 like ''%' + your_field1_value + '''%';
if checkbox2.checked then
sql := sql + ' and field2 like ''%' + your_field2_value + '''%';
... so on query1.sql.text = sql;
query1.open;
...
题目如下:我想在查询中实现组合查询:有员工编号edit1,姓名:edit2,部门:combobox1等,有个button1,有个dbgrid1,实现查询,edit1,edit2,combobox1,以上全选,或者,选几个,都能实现查询??
代码该怎么写,,假如ado是:adoquery1,datasource1,我是这样给他写的,button1onclick事件;var str:string;
begin
str:='select * from adoquery1 where ';
if edit1.text<>'' then
begin
str:=str+' ygbh='+Quotedstr(edit1.text)+' AND ';
end;
if edit2.text <>'' then
begin
str :=str+' xm='+Quotedstr(edit2.text)+' AND ';
end;
if combobox1.text <> '' then
begin
str :=str+' bm='+Quotedstr(combobox1.text)+' AND ';
end;
str:=str+' 1=1'; // 这里是防止你没有选择任意一个
with adoquery1 do
close;
sql.clear;
sql.add(str);
open;
end;你看看是否符合你的要求?
至于你的多个条件就加进去就可以了
begin
//adoquery1.Close; // 可简写为下面一句,其他雷同
Close; // 就直接这么写,
.......
end;