
第一大家需要了解在Access中null和空字符串是不一样的,因此假如处置不好该问题就会带来不少麻烦,尤其是在混合查看中。
解决方案如下:
var SQLStr:string;begin// SQLStr := select * from ordertb where 10; if Trim(Edit1.Text) then SQLStr := SQLStr + and serialid like :a; if Trim(Edit2.Text) then SQLStr := SQLStr + and pname like :b; with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(SQLStr); if Trim(Edit1.Text) then Parameters.ParamByName(a).Value := %+Trim(Edit1.Text)+%; if Trim(Edit2.Text)then Parameters.ParamByName(b).Value := %+Trim(Edit2.Text)+%; Open; end;end;
或者:
begin with ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select * from ordertb where 10); if Trim(Edit1.Text) then SQL.Add( and serialid like %+Trim(Edit1.Text)+%); if Trim(Edit2.Text)then SQL.Add( and pname like %+Trim(Edit2.Text)+%); Open; end;end;
总结:
将条件为空的字段从查看语句中过滤掉。





