一个程序当我不关闭主程序的时候,第二次运行一个搜索窗口,就报错了。为什么?
   程序如下:(错误信息是general SQL error odbc from 子句语法错误请大家帮帮我)
   unit query;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,data, StdCtrls, Grids, DBGrids, Buttons,report, Menus;type
  TForm3 = class(TForm)
    DBGrid1: TDBGrid;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit1: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    BitBtn1: TBitBtn;
    Label9: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form3: TForm3;implementation{$R *.dfm}
procedure TForm3.BitBtn1Click(Sender: TObject);
var
querystr:string;
i:integer;
flag:integer;
begin
  i:=0;
  if (length(edit1.Text)<>0) or (length(ComboBox1.Text)<>0) or (length(ComboBox2.Text)<>0) or (length(edit4.Text)<>0) or (length(edit5.Text)<>0)  then
  begin
    querystr:='select * from member where '; //'select * form member where name="monkey" ';
    if length(edit1.Text)<>0 then
    begin
      querystr:=querystr+'name='+''''+edit1.Text+'''';
      flag:=1;
    end;
    if length(ComboBox1.Text)<>0 then
      if flag=1 then
        querystr:=querystr+' and sex='+''''+ComboBox1.Text+''''
      else
        begin
          querystr:=querystr+' sex='+''''+ComboBox1.Text+'''';
          flag:=1;
        end;
    if length(ComboBox2.Text)<>0 then
      if flag=1 then
        querystr:=querystr+' and department='+''''+ComboBox2.Text+''''
      else
        begin
          querystr:=querystr+' department='+''''+ComboBox2.Text+'''';
          flag:=1;
        end;
    if length(edit4.Text)<>0 then
      if flag=1 then
        querystr:=querystr+' and class='+''''+edit4.Text+''''
      else
      begin
         querystr:=querystr+' class='+''''+edit4.Text+'''';
         flag:=1;
      end;
    if length(edit5.Text)<>0 then
      if flag=1 then
        querystr:=querystr+' and bedroom='+''''+edit5.Text+''''
      else
      begin
        querystr:=querystr+' bedroom='+''''+edit5.Text+'''';
      end;
    data.Form2.Query1.Close;
    data.Form2.Query1.SQL.Clear;
    data.Form2.Query1.SQL.Add(querystr);
    data.Form2.Query1.Open;
    data.Form2.Query1.DisableControls;
    with data.Form2.Query1 do
    begin
      first;
      while not  eof do
      begin
        i:=i+1;
        next;
      end;
      enablecontrols;    end;
    label9.Caption:='共有'+inttostr(i)+'人';
    label9.Visible:=true;  end;
end;procedure TForm3.BitBtn3Click(Sender: TObject);
begin
  close;
end;procedure TForm3.FormActivate(Sender: TObject);
var
  i:integer;
begin
  i:=0;
  data.Form2.Query1.SQL.Add('select * from member');
  data.Form2.Query1.Open;  with data.Form2.Query1 do
    begin
      first;
      while not  eof do
      begin
        i:=i+1;
        next;
      end;
      enablecontrols;    end;
    label9.Caption:='共有'+inttostr(i)+'人';
    label9.Visible:=true;
end;procedure TForm3.BitBtn2Click(Sender: TObject);
begin
  report.Form4.QuickRep1.Preview;
end;procedure TForm3.N2Click(Sender: TObject);
begin
  edit1.Text:='';
  edit4.Text:='';
  edit5.Text:='';
  combobox1.Text:='';
  combobox2.Text:='';
end;procedure TForm3.N3Click(Sender: TObject);
begin
  report.Form4.QuickRep1.Preview;
end;procedure TForm3.FormCreate(Sender: TObject);
beginend;end.