我做了一个将excel2003文件导入到access数据库的功能:
程序是办公室电脑上能正常运行,xp系统,delphi7,office2010
但是今晚放到自己电脑(WIN7系统,delphi7,office2007)上运行就出现问题了,
程序能进,但是当选择好文件导入时,就弹出错误:
Project Cost.exe raised exception class EIntfcasterror with message 'interface not supported'
相关代码如下:代码在办公室电脑上能正常运行的procedure Tfinput_CW.btnSelectClick(Sender: TObject);
begin
if OpenDlg.Execute then//OpenDlg为一个打开对话框
begin
aa.OpenCurrentDatabaseOld(ExtractFilePath(ParamStr(0))+'data\dbCost.mdb',false); //打开数据库aa.DoCmd.TransferSpreadsheet(acImport,acSpreadsheetTypeExcel8,'T_overhead',OpenDlg.FileName,true,'','');
//实现导入,具体参数的含义下面会介绍。
aa.Disconnect;     //断开数据库连接
showmessage('导入成功');
end;end;
网上有很多这个问题,但都没看到什么太直接的解决办法,请教各位,这个是什么原因造成的呢?请问该怎么解决?在线等解决,先谢谢了

解决方案 »

  1.   

    你说的这种方法还真没用过,回去研究研究。
    我一般用TAdoQuery来执行SQL语句
    Insert into A(a1,a2,a3) SELECT   *   FROM   [EXCEL   8.0;DATABASE=D:\123.XLS].[SHEET1$]
      

  2.   

    Compiled binary isn't backward compatible. You have compiled the application using M$ office 2010 activex wrapper (pascal unit), while your secondary system have office 2003 installed.To Fix:1. Import Office ActiveX to delphi (This should be there)
    2. Compile the application on your computer running office 2003
    3. EnjoyHope it helps.//Ali
      

  3.   

    你好,谢谢你的回答因为我试着改成你说的这种办法,但是点击导入按钮后出现问题:
    Project cost.exe raised exception class eoleException with message
    '不正常地定义参数对象,提供了不一致或不完整的信息'……我的代码改成了这样:请看看有什么问题:“procedure Tfinput_CW.btnSelectClick(Sender: TObject);
    begin
    with datamd.adoInput do
    begin
       close;
       sql.Clear;
       sql.text:='insert into t_overhead(ID,Fyear,FPeriod,FFactory,FNumber,FAmount) SELECT * FROM [EXCEL 8.0;DATABASE=D:\excel\费用.XLS].[SHEET1$]';
       showmessage(sql.Text );
       execsql;
       end;
    showmessage('导入成功');
    end;
      

  4.   


    with adoquery1 do
    begin
      Close;
      SQL.Clear;
      Parameters.Clear;
      ParamCheck := false;//在SQL语句里如果出现路径的话,因为有冒号,所以要指定这个参数为False
      SQL.Add(strSql);
    end;
      

  5.   

    如果不指定False的话,冒号后面的会被当成参数。
      

  6.   

    路飞,感谢,我的每一个问题几乎都是你帮忙解决的,太谢谢你了
    我看你在早上的一个帖子里说来CSDN两年,接触delphi才1年,你太厉害了……