我是初学的,请教下我吧!!!!!!!!!!我用 access ado 来连的,我建了一个Dm 做数据连接模块,用 adouqerry 来打开infor 的表,现在建了一个 form ,里面里有 edit1  dbedit1
我想在edit1输入后 .enter 就要查询表infor 然后将结果显示在 dbedit1中,procedure TDPFrom.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
        begin
//////////////
这部分如果写??????????????
/////////////
        end;
end;
DM.pas 代码如下:
unit DMUnit;interfaceuses
  SysUtils, Classes, DB, ADODB;type
  TDM = class(TDataModule)
    conn: TADOConnection;
    company: TADOQuery;
    dscompany: TDataSource;
    KHZL: TADOQuery;
    dsKHZL: TDataSource;
    DPD: TADOQuery;
    dsDPD: TDataSource;
     procedure dscompanyDataChange(Sender: TObject; Field: TField);
    procedure DataModuleCreate(Sender: TObject);
  private
    { Private declarations }
  public
      procedure OpenAll;
    { Public declarations }
  end;var
  DM: TDM;implementation
 uses  companyunit,productunit,DPunit;
{$R *.dfm}procedure TDM.OpenAll;
beginend;
procedure TDM.dscompanyDataChange(Sender: TObject; Field: TField);
begin
  if Assigned(WH110Form) then // 如果在WH110Form中
 // ShowMessage('change') ;
    WH110Form.yes.Enabled := True; //记录发生改变,Button1可用。提交保存
end;procedure TDM.DataModuleCreate(Sender: TObject);
begin
  conn.Connected:=true;
company.Open;
KHZL.Open;
DPD.Open;
  //  OpenAll
{conn.Connected:=True;    if conn.Connected then
  else
  begin
    if MessageBox(0, '连接后台数据库失败,是否重新指定数据库位置连接',
      '严重错误', MB_YESNO + MB_ICONSTOP) = IDYES then    begin
      Conn.Close;
      conn.Open;
    end;
  end; }end;
end.

解决方案 »

  1.   

    你说的什么意思
    是EDIT里面的相当于一个参数吗?然后结果在DBEDIT里面显示出来
    if key=#13 then begin
    with adoquery do begin
    Close;
    SQL.Clear;
    SQl.Text:='select 字段名 from 表名 where 字段名=:A';
    paramsters.parambyanem('A').value:=Trim(Edit.Text);
    open;
    end;
    if Adoquery.IsEmpty=False then
    begin
    dbedtit.text:=adoquery.fieldbyname('字段').asstring;
    或者DBEDIT指向ADOQUERY
    end;
    end;
      

  2.   

    先将form单元uses  DM单元,再在form上放置一个DataSource,将DataSource的DataSet属性指向AdoQuery,将dbedit1的DataSource属性指向DataSource,然后借用楼上的if key=#13 then begin
    with dm.adoquery do begin
    Close;
    SQL.Clear;
    SQl.Text:='select 字段名 from 表名 where 字段名=:A';
    Parameters.ParamByName('A').value:=Trim(Edit1.Text);
    open;
    dbedit1.DataField:='字段名';
    open;
    end;
    end;
      

  3.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
        begin
          with ADOQuery1 do
            begin
              Close;  SQL.Clear;
              SQL.Add('select 字段名 from 表名 where 字段名='+''''+Edit1.text+'''');
              Open;
            end;
        end;
    end;
    ////楼主说不太清楚,能理解的就这些了
      

  4.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
      begin
        with ADOQuery1 do
          begin
            Close;  
            SQL.Clear;
            SQL.Add('select 字段名 from 表名 where 字段名= '+QuotedStr(Edit1.text);
            Open;
          end;
      end;
    end;或者locate看看帮助
    with adoquery1 do
    begin
      locate('字段名',edit1.text,[]);
    end;
      

  5.   

    我的意思主是在edit中输入参数,然后就根据那个参数在infor 表中相应的记录,再将字段显示在 dbedit 中,
      

  6.   

    dbedit是感知控件
    只要数据集定位到一条记录,dbedit自然会显示相应的记录
    也就是说
    locate(定位)到那条记录,dbedit自然会显示相应的记录
      

  7.   

    dbedit和Dataset控件连接上,把Dataset的Active属性设置成true就行了