父窗口上有DBGIRD连一个ADOTABLE,里面有id,NAME等字段!
点击查找弹窗口,输入关键字点BUTTON1,如果存在关闭查找窗口,在父窗口的dbgird中定位,如果不没有给出提示,点确认BUTTON2后也回到父窗口!
对BUTTON1的ONCLICK怎么写,LOCATE可以吗?要回到父窗口在定位!
另外LOCATE能不能完成输入字符ID和NAME中任一个匹配就开始定位 ,
如果不存在纪录要把提示框和查找窗口都关掉!

解决方案 »

  1.   

    用SQL方法可以进行模糊查询:
    ado.sql.clear;
    ado.sql.add('select * from table where ID like ''%'''+edit1.text+'''%'''');
    ado.open;
      

  2.   

    父窗体 放 button_search onclick事件里写
    procedure Tformmain.Button_searchclick(sender:Tobject)
    var form_find:Tform_find;
    begin
      form_find:Tform_find.create(nil);
      with form_find do
      try
        if showmadol = mrok then 
           操作
      finally
         freeandnil(form_find);
      end;
    end;
      

  3.   

    好象不行阿!
    我的查找按钮
    procedure TPARTSFrm.findbtnClick(Sender: TObject);
    var
      FindForm: TFindForm;
    begin
      inherited;
      findFORM :=TFindForm.Create(nil);
      try
      if findform.ShowModal = mrok then
      dm.PartsTable.Locate('PART_ID',trim(PARTEDIT.TEXT),[loCaseInsensitive]);
      finally
      freeandnil(findForm);
      end;
    end;子窗口的确认按钮procedure TFindForm.Button1Click(Sender: TObject);begin
    IF  not dm.PartsTable.Locate('PART_ID',FindEDIT.Text,[lopartialKEY]) THEN
     begin
      SHOWMESSAGE('没有匹配记录') ;
     end ;
     FindEDIT.Text := '';
    end;查询条件在子窗口中,如果在父窗口locate,FindEDIT的控件不存在阿
      

  4.   

    再说明一下环境。父窗口一个DBGIRD一个查找按钮,点击弹出子窗口
    子窗口一个用于输入查找条件的edit,一个确认按钮,点击如果存在关闭子窗口在父窗口定位!