我还有一个问题:就是我还有一个页面做查询的用到一个QUERY 和 DBGUID用了2个COMBOBOX,一个用来选查找方式。一个用来选逻辑符。两个EDIT,1个用来输入查询值,另一个用来显示选好的组合如名字=某某
我已经做好了
如果想增加一个模糊查询的功能要怎么设计
源码如下unit Unit5;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, Buttons, Grids, DBGrids, DB, ADODB, ComCtrls,
  ExtCtrls, DBTables;type
  TForm5 = class(TForm)
    ADOConnection1: TADOConnection;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Label2: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    SpeedButton1: TSpeedButton;
    Label1: TLabel;
    StatusBar1: TStatusBar;
    Label3: TLabel;
    Image3: TImage;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Label5: TLabel;
    Edit2: TEdit;
    Query1: TQuery;    procedure SpeedButton1Click(Sender: TObject);
    procedure Label3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);    
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form5: TForm5;implementationuses Unit2;{$R *.dfm}procedure TForm5.SpeedButton1Click(Sender: TObject);
var  s,s1,s2,s3:string;
begin
  s1:=combobox1.Text;
  s2:=combobox2.Text;
  s3:=edit1.Text;
  edit2.Text:=s1+s2+s3;
  if s1='' then
  begin
    showmessage('请选择查询方式!');
  end
  else
  begin
    if s2='' then
    begin
      showmessage('请选择运算符!');
    end
    else
    begin
      if s3='' then
      begin
        showmessage('请输入查询值!');
      end
      else
      begin
        s:='select * from TABLE1 where '+s1+s2+''''+s3+'''';
        query1.Close;
        query1.SQL.Clear;
        query1.SQL.Add(s);
        query1.Open;
        if query1.RecordCount=0 then
        showmessage('没有符合条件的记录!');
      end;
    end;
  end;
end;procedure TForm5.Label3Click(Sender: TObject);
begin
form2.show;form5.hide;
end;procedure TForm5.FormCreate(Sender: TObject);
beginend;end.procedure TForm5.Label3Click(Sender: TObject);
begin
  form2.show;form5.hide;
end;procedure TForm5.BitBtn1Click(Sender: TObject);
begin
 ADOTABLE1.First;
end;procedure TForm5.BitBtn2Click(Sender: TObject);
begin
 ADOTABLE1.Next;
end;procedure TForm5.BitBtn4Click(Sender: TObject);
begin
ADOTABLE1.Last;
end;procedure TForm5.BitBtn3Click(Sender: TObject);
begin
ADOTABLE1.Prior;
end;procedure TForm5.BitBtn5Click(Sender: TObject);
begin
Adotable1.Insert;
end;procedure TForm5.BitBtn6Click(Sender: TObject);
begin
 Adotable1.Cancel;
end;procedure TForm5.BitBtn7Click(Sender: TObject);
begin
 Adotable1.Post;
end;procedure TForm5.BitBtn8Click(Sender: TObject);
begin
adotable1.Delete;
end;procedure TForm5.BitBtn9Click(Sender: TObject);
begin
 adotable1.Edit;
end;end.

解决方案 »

  1.   

    模糊查询?
    if DataSet.Locate('FieldName',AVar,[opt]) then 
    showMessage('查到记录!');
      

  2.   

    在用SQL中查询可用Like关键字。
      

  3.   

    模糊查询时只要注意SQL语句就行了,条件用%字段%
      

  4.   

    begin
            s:='select * from TABLE1 where '+s1+s2+''''+s3+'''';
            query1.Close;
            query1.SQL.Clear;
            query1.SQL.Add(s);
            query1.Open;
            if query1.RecordCount=0 then
            showmessage('没有符合条件的记录!');
          end;
        希望能用这种方式实现
    要符合给出的条件啊
    是在下拉菜单中选中字段名在下拉菜单中选中逻辑符
    然后在EDIT中输入要查询的字实现模糊查询