0

こんにちは、私は Delphi 7 を初めて使用し、mdb データベースを管理するアプリを作成しました。キーワードを入力すると、データベースの特定の行のキーワードを含む結果が返される検索ボックスを配置したいだけです。

例: 名という名前の行で、john キーワードを使用してデータベースを検索したい場合、Enter キーまたは検索ボタンを押すと、アプリは名に john を含むすべてのデータを含む結果を返します。

type
    Tcollector = class(TForm)
    Image1: TImage;
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  collector: Tcollector;

implementation

{$R *.dfm}

procedure Tcollector.DataSource1DataChange(Sender: TObject; Field: TField);
begin

end;

編集:

私はこれをしました:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls;

type
    TForm1 = class(TForm)
    ComboBox1: TComboBox;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    ADOQuery2: TADOQuery;
    ADOQuery3: TADOQuery;
    ADOQuery4: TADOQuery;
    ADOQuery5: TADOQuery;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.GetTableNames(ComboBox1.Items);
end;

procedure TForm1.Button1Click(Sender: TObject);
var  tblname : string;
begin

if ComboBox1.ItemIndex < 0 then Exit;
tblname := ComboBox1.Items[ComboBox1.ItemIndex];

with ADOQuery1 do begin
Close;
  SQL.Text := 'SELECT * FROM ' + tblname;
  Open;
end;

with ADOQuery2 do begin
  Close;
  SQL.Text := 'SELECT * FROM ' + tblname;
  Open;
end;

with ADOQuery3 do begin
  Close;
  SQL.Text := 'SELECT * FROM ' + tblname;
  Open;
end;

with ADOQuery4 do begin
  Close;
  SQL.Text := 'SELECT * FROM ' + tblname;
  Open;
end;

with ADOQuery5 do begin
  Close;
  SQL.Text := 'SELECT * FROM ' + tblname;
  Open;
end;

    end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form2.show;
end;

end.

これまでのところ、すべてのテーブル データをプルできます。プログラムに実行させたいのは、tedit で入力したデータを表示することです

ところで、私の最初の投稿で申し訳ありませんが、フォーラムのショートカットと投稿のルールにまだ慣れていません。:D

4

2 に答える 2

1

TDataSet.Filter または TDataSet.OnFilterRecord または SQL を直接使用します。

于 2013-03-16T11:00:01.887 に答える
0

いくつかの小さな問題がありましたが、多分私はそれを理解することができます

begin
ADOTable1.First;
if ADOTable1.Locate('Last',edit1.Text ,[]) then begin
Label1.Caption := ADOTable1.FieldByName('Last').AsString;
Label2.Caption := ADOTable1.FieldByName('First').AsString;
Label3.Caption := ADOTable1.FieldByName('address').AsString;
Next;
end else begin
Label1.Caption := '';
Label2.Caption := '';
Label3.Caption := '';
于 2013-03-18T11:22:29.610 に答える