procedure TPianQu_frm.acEditExecute(Sender: TObject);
begin
  with data_frm.ADOQuery1 do
    begin
      edPq_id.Text     := FindField('Pq_id').AsString  ;
      edPq_mc.Text   := FindField('pq_mc').AsString  ;
      edPq_dz.Text   := FindField('Pq_dz').AsString  ;
    end;end;
显示错误:Access Voilation at address 004C4D4 in module 'ad.exe' , Read of address FFFFFFFF.

解决方案 »

  1.   

    procedure TPianQu_frm.acEditExecute(Sender: TObject);
    begin  
    with data_frm.ADOQuery1 do
        begin
          if not Active then open;
          if IsEmpty then begin
            edPq_id.Text   :=''; 
            edPq_mc.Text   :='';
            edPq_dz.Text   :=''; 
          end;
          edPq_id.Text     := FindField('Pq_id').AsString  ;
          edPq_mc.Text   := FindField('pq_mc').AsString  ;
          edPq_dz.Text   := FindField('Pq_dz').AsString  ;
        end;end;
      

  2.   

    if IsEmpty then begin
            edPq_id.Text   :=''; 
            edPq_mc.Text   :='';
            edPq_dz.Text   :=''; 
            exit; //忙了退出过程
          end;
      

  3.   

    请在检查你的数据库里是否有'Pq_id','pq_mc','Pq_dz'
      问题就出在这里。
      好好检查。
          edPq_id.Text     := FindField('Pq_id').AsString  ;
          edPq_mc.Text   := FindField('pq_mc').AsString  ;
          edPq_dz.Text   := FindField('Pq_dz').AsString  ;
      

  4.   

    procedure TPianQu_frm.acEditExecute(Sender: TObject);
    begin
      with data_frm.ADOQuery1 do
        begin
          edPq_id.Text     := FindField('Pq_id').AsString  ;
          edPq_mc.Text   := FindField('pq_mc').AsString  ;
          edPq_dz.Text   := FindField('Pq_dz').AsString  ;
        end;end;是否你的e文字母打错了,正确如下:
    procedure TPianQu_frm.acEditExecute(Sender: TObject);
    begin
      with data_frm.ADOQuery1 do
        begin
          edPq_id.Text := Fieldbyname('Pq_id').AsString  ;
          edPq_mc.Text := Fieldbyname('pq_mc').AsString  ;
          edPq_dz.Text := Fieldbyname('Pq_dz').AsString  ;
        end;end;
      

  5.   

    以上方法都试过了,问题未解决。
    是否ADOQuery没有将use SQL 指定的数据库对象连接起来。
      

  6.   

    改成:
    procedure TPianQu_frm.acEditExecute(Sender: TObject);
    begin
      with data_frm.ADOQuery1 do
        begin
          edPq_id.Text := Fieldbyname('Pq_id').AsString  ;
          edPq_mc.Text := Fieldbyname('pq_mc').AsString  ;
          edPq_dz.Text := Fieldbyname('Pq_dz').AsString  ;
        end;
    end;出现错误:
    ADOQuery1 : field 'pq_id' not Found;
      

  7.   

    原来是自己粗心用了Select field as fieldA