RT

解决方案 »

  1.   

    用两个ado控件链上EXCEL表和一个SQL数据库表用两个数据集导数据
      

  2.   

    ADO控件里面哪个能够连接Excel的?
      

  3.   

    你可用ODBC方式连接,然后在delphi 编一段程序,一个ADO连ODBC,一个ADO连SQL数据库,用程序将每一条记录添加到SQL库中.
      

  4.   

    ado可以连接,不过调试时比较麻烦,得退出来运行EXE
      

  5.   

    ADO可以连EXCEL,但我觉得这不是一个好的方法,第一你要操作不同的表时,你要连不同的文件。
    比较烦。
    我觉得还是用OLE比较好,但是我一直都想知道怎么样做。
    望高人指点一下。
      

  6.   

    procedure tfrm_shortage.import_excel(file_name:string);
    var XlsFile,XlsSheet:variant;
         sheetname,excel_name,prf_flag:string;
         i,j:integer;
         model_name:string;
    begin
     try
      try
        if VarisEmpty(XlsFile) then
          XlsFile:=CreateoleObject('Excel.Application');
        XlsFile.Workbooks.Add(trim(file_name));
        XlsSheet:=XlsFile.WorkSheets[trim(ed_sheet1.Text)];////////////////////////////////////////////////////////////////////////
          for i:=9 to strtoint(ed_count.Text)  do
            begin
             prf_flag:=XlsSheet.cells[i,5];
            /////////////////////
              if  prf_flag='PRF' then  //prf import
                begin
                  model_name:=model_hhpn(trim(XlsSheet.cells[i,3]));
                  if Aset_prf.Locate('CUSTOMERPARTNO',model_name,[loCaseInsensitive]) then
                     begin
                       Aset_prf.Edit;
                         for j:=0 to listbox_col.Items.Count-1 do
                           begin
                            Aset_prf.Fields[j+1].AsInteger:=Aset_prf.Fields[j+1].AsInteger+strtoint(XlsSheet.cells[i,week_index(listbox_col.Items.Strings[j])]);
                           end;
                       Aset_prf.Post;
                     end
                  else
                   ////------------------------------------////////////
                     begin
                  Aset_prf.Insert;
                  Aset_prf.Fields[0].AsString:=model_name;
                    for j:=0 to listbox_col.Items.Count-1 do
                      begin
                        Aset_prf.Fields[j+1].AsInteger:=strtoint(XlsSheet.cells[i,week_index(listbox_col.Items.Strings[j])]);
                      end;
                  Aset_prf.post;
                     end;
                  /////----------------------------------------//////////////            end;
               //--------------------------------------------------------------//
             { else
                 if prf_flag='Current/RTF'  then  //////////////rtf  import
                    //----------------------------------------------//
                   begin
                      if  Aset_rtf.Locate('CUSTOMERPARTNO',model_hhpn(XlsSheet.cells[i-1,3]),[loCaseInsensitive]) then
                        begin
                           Aset_rtf.Edit;
                           Aset_rtf.Fields[1].AsInteger:=Aset_rtf.Fields[1].AsInteger+strtoint(XlsSheet.cells[i,11]);
                           Aset_rtf.Post;
                        end
                      else
                    begin
                     Aset_rtf.Insert;
                     Aset_rtf.Fields[0].AsString:=model_hhpn(XlsSheet.cells[i-1,3]);
                     Aset_rtf.Fields[1].AsInteger:=strtoint(XlsSheet.cells[i,11]);
                     Aset_rtf.Post;
                    end;
                   end;}
                    //---------------------------------------//
            ProgressBar1.StepBy(1);
            //////////////////////
            end;
    ///////////////////////////////////////////////////////////////////////////////
      except
         begin
          SHOWMESSAGE('PRF SHEET 名文檔可能不為 PRF !');
          raise;
         end;
      end;
     finally
      begin
       XlsFile.quit;
       XlsFile:=null;
      end;
     end; // try finally end
    end;
      

  7.   

    重点:
    1。Extended Properties-------Excel8.0
    2。ADOQuery 中的SQL
    3。生成的EXE关闭DELPHI调试的程序后运行。源程序中有动态实现方法,不知是否你想要的。EMAIL你。

    连上后,按其他与数据库表的操作相同。
    付送:微打命令集.xls
    谁要???????  [email protected]