你把各种条件连接起来不就得了!举例说明: var mysql:string; iswhere:boolean; begin ...... query1.close; query1.sql.clear; mysql:='select * from mytable'; iswhere:=false; if edit1.text<>'' then begin mysql:=mysql+' where myfield1='''+Edit1.text+''''; iswhere:=true; end; if edit2.text<>'' then if iswhere then mysql:=mysql+' and myfield2='''+Edit2.text+'''' else mysql:=mysql+' where myfield2='''+Edit2.text+''''; .... query1.sql.add(mysql); query1.open; end;
我是用动态数组来搞定的,因为查询时一个表与一个表不同,然后显示给用户中文,我们在程序中翻译成表的字段,再把大于,小于,等于,不小于,不大于,近似于翻译成>,<,=,>=,<=, like 等 , 代码有点长,给我发E_mail我发给你代码:[email protected]
vb里的 Private Sub Cbo_astoper_LostFocus() If Me![Cbo_astoper] <> "" Then astoper = True If product = True Or jp_oper = True Or jp_cop = True Or jp_dep = True Or stardate = True Or enddate = True Or chn_cop = True Or chn_oper = True _ Or chn_dep = True Or fact_cop = True Or fact_dep = True Or chn_id = True Or pact_status = True Or fact_id = True Or pact_id = True Or pact_name = True Or jp_id = True Then sql = sql + " and c.vchr_Operater='" & Me![Cbo_astoper] & "'" Else sql = sql + " where c.vchr_Operater='" & Me![Cbo_astoper] & "'" End If End If End Sub
vb里的 Private Sub Cbo_astoper_LostFocus() If Me![Cbo_astoper] <> "" Then astoper = True If product = True Or jp_oper = True Or jp_cop = True Or jp_dep = True Or stardate = True Or enddate = True Or chn_cop = True Or chn_oper = True _ Or chn_dep = True Or fact_cop = True Or fact_dep = True Or chn_id = True Or pact_status = True Or fact_id = True Or pact_id = True Or pact_name = True Or jp_id = True Then sql = sql + " and c.vchr_Operater='" & Me![Cbo_astoper] & "'" Else sql = sql + " where c.vchr_Operater='" & Me![Cbo_astoper] & "'" End If End If End Sub
var
mysql:string;
iswhere:boolean;
begin
......
query1.close;
query1.sql.clear;
mysql:='select * from mytable';
iswhere:=false;
if edit1.text<>'' then
begin
mysql:=mysql+' where myfield1='''+Edit1.text+'''';
iswhere:=true;
end;
if edit2.text<>'' then
if iswhere then
mysql:=mysql+' and myfield2='''+Edit2.text+''''
else
mysql:=mysql+' where myfield2='''+Edit2.text+'''';
....
query1.sql.add(mysql);
query1.open;
end;
代码有点长,给我发E_mail我发给你代码:[email protected]
Private Sub Cbo_astoper_LostFocus()
If Me![Cbo_astoper] <> "" Then
astoper = True
If product = True Or jp_oper = True Or jp_cop = True Or jp_dep = True Or stardate = True Or enddate = True Or chn_cop = True Or chn_oper = True _
Or chn_dep = True Or fact_cop = True Or fact_dep = True Or chn_id = True Or pact_status = True Or fact_id = True Or pact_id = True Or pact_name = True Or jp_id = True Then
sql = sql + " and c.vchr_Operater='" & Me![Cbo_astoper] & "'"
Else
sql = sql + " where c.vchr_Operater='" & Me![Cbo_astoper] & "'"
End If
End If
End Sub
Private Sub Cbo_astoper_LostFocus()
If Me![Cbo_astoper] <> "" Then
astoper = True
If product = True Or jp_oper = True Or jp_cop = True Or jp_dep = True Or stardate = True Or enddate = True Or chn_cop = True Or chn_oper = True _
Or chn_dep = True Or fact_cop = True Or fact_dep = True Or chn_id = True Or pact_status = True Or fact_id = True Or pact_id = True Or pact_name = True Or jp_id = True Then
sql = sql + " and c.vchr_Operater='" & Me![Cbo_astoper] & "'"
Else
sql = sql + " where c.vchr_Operater='" & Me![Cbo_astoper] & "'"
End If
End If
End Sub