通过无线电组选择搜索表

时间:2013-01-29 22:12:33

标签: delphi ms-access delphi-xe3

我正在使用与MS ACCESS数据库的OLEDB 4.0连接创建Delphi XE3应用程序。 我已经在这些表上保存了一些信息,但现在我想开发一个“搜索内容表单”

我希望有一个radiogroup让用户选择他想要如何搜索数据库上每个表的内容。喜欢:按姓名,按日期或按年龄。然后有一个TEdit供用户动态输入他在该特定表上寻找的内容。

我正在使用TADOconnection和ADOtables。

1 个答案:

答案 0 :(得分:2)

假设您有3列NameDateAge,您可能会尝试这样的事情。您需要将间隔设置为搜索项写入间隔(例如1000毫秒),然后是具有3个项目的无线电组,其中第1个用于名称,第2个用于日期,第3个用于年龄搜索词选择。然后你需要有一个搜索编辑框本身并处理以下事件:

procedure TForm1.Edit1Change(Sender: TObject);
begin
  Timer1.Enabled := False;
  Timer1.Enabled := True;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  Timer1.Enabled := False;
  Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := False;
  ADOTable1.Filtered := False;
  if Edit1.Text <> '' then
  begin
    case RadioGroup1.ItemIndex of
      0: ADOTable1.Filter := 'Name';
      1: ADOTable1.Filter := 'Date';
      2: ADOTable1.Filter := 'Age';
    end;
    ADOTable1.Filter := ADOTable1.Filter + ' LIKE ' + QuotedStr(Edit1.Text);
    ADOTable1.Filtered := True;
  end;
end;