我正在创建一个使用 OLEDB 4.0 连接到 MS ACCESS 数据库的 Delphi XE3 应用程序。我已经在这些表上保存了一些信息,但现在我想开发一个“搜索内容表单”
我想有一个无线电组供用户选择他想如何搜索数据库中每个表的内容。喜欢:按姓名、按日期或按年龄。然后有一个 TEdit 供用户动态键入他在该特定表上查找的内容。
我正在使用 TADOconnection 和 ADOtables。
我正在创建一个使用 OLEDB 4.0 连接到 MS ACCESS 数据库的 Delphi XE3 应用程序。我已经在这些表上保存了一些信息,但现在我想开发一个“搜索内容表单”
我想有一个无线电组供用户选择他想如何搜索数据库中每个表的内容。喜欢:按姓名、按日期或按年龄。然后有一个 TEdit 供用户动态键入他在该特定表上查找的内容。
我正在使用 TADOconnection 和 ADOtables。
假设你有 3 列Name
,你可能会尝试这样的事情Date
。Age
您需要一个计时器,其间隔设置为搜索词写入间隔(例如 1000 毫秒),然后是一个包含 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;