code_s:=master_qt.Fieldbyname('empid').AsString;
  date_s:=master_qt.Fieldbyname('dates').AsString;
  data_form.search_ok:=false;  overtime_repair_forms:=tovertime_repair_form.Create(self);
  overtime_repair_forms.Edit1.Text:=code_s;
  overtime_repair_forms.Edit3.Text:=date_s ;
  overtime_repair_forms.ShowModal ;  if data_form.search_ok=true then
    begin        
      master_qt.Locate('empid;dates', VarArrayOf([trim(code_s),strtodate(date_s)]),[loPartialKey]);
    end;老是提示:  access address error! 但master_qt.locate 會運行如何解決

解决方案 »

  1.   

    procedure Tovertime_form.BitBtn2Click(Sender: TObject);
    var
      overtime_repair_forms:tovertime_repair_form ;
      code_s,date_s:string;
    begin
      code_s:=master_qt.Fieldbyname('empid').AsString;  //master_qt --tadoquery
      date_s:=master_qt.Fieldbyname('dates').AsString;
      data_form.search_ok:=false;   //data_form 為一表單  overtime_repair_forms:=tovertime_repair_form.Create(self);
      overtime_repair_forms.Edit1.Text:=code_s;
      overtime_repair_forms.Edit3.Text:=date_s ;
      overtime_repair_forms.ShowModal ;  
      //overtime_repair_forms 表單會改變data_form.search_ok 的值  if data_form.search_ok=true then
        begin
          master_qt.Locate('empid;dates', VarArrayOf([trim(code_s),strtodate(date_s)]), [loPartialKey]);
        end;
    end;
      

  2.   

    应该是overtime_repair_forms这个窗体的问题。
      

  3.   

    overtime_repair_forms:=tovertime_repair_form.Create(self);
    改为:
    overtime_repair_forms:=tovertime_repair_form.Create(Application);
      

  4.   

    在那个工程单元文件中去掉application.create(tovertime_repair_form