我的程序要求是 把数据库(SQL SERVER)以外的数据(EXCEL)导进去用ADOCONNECT连接 我该怎么用呢? 好象执行什么SQL语句吧但我不清楚 请指教一下

解决方案 »

  1.   

    1.设置ADOConnection的ConnectionString
        构造ConnectionString时,OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider作为ADO的驱动程序。这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件。
        连接的数据库名称当然就是你要打开的Excel文件,注意扩展名是*.xls,而不是*.mdb。
        最关键的一点是,还要设置扩展属性Extended Properties为“Excel 8.0”,否则,测试连接时会报告无法识别数据格式的错误。Extended Properties的属性值在“所有”参数页中输入。
        最后,设置完成后的ConnectionString中的各项参数为:
        Provider=Microsoft.Jet.OLEDB.4.0
        Data Source=MyExcelFile.xls
        Extended Properties=Excel 8.0
        Persist Security Info=False  2.设置ADODataSet或ADOTable
        将ADODataSet或ADOTable连接到刚才的ADOConnection。如果不用ADOConnection,也可以参照上面的方法直接设置ADODataSet或ADOTable的ConnectionString属性。
        对于ADODataSet,需要将CommandType属性设置为cmdTableDirect,而对于ADOTable,则将TableDirect属性设置为True。因为,访问Excel文件是直接的数据文件访问,不是通过SQL语句来操作游标访问的。如果不设置直接访问,则系统会报告SQL语句格式错误等信息。
        然后,当你下拉ADODataSet中的CommandText属性或ADOTable的TableName属性时,就可以选择到要打开的工作表了。注意,表名后面多了加一个$符号。
    3.打开ADODataSet或ADOTable
    连好后,自己写一些插入的循环语句就可以插入另一个表了。
      

  2.   

    如果用程序就如同楼上,但是用SQL本身的更好。
      

  3.   

    先存为DBF格式,在用SQL导入比较方便
      

  4.   

    1 SQL本身带有这种功能啊
    2 IUPRG(遨云驰行,琢符弄图) de办法
    3 uses comobj;  try
          eclApp := CreateOleObject('Excel.Application');
          WorkBook :=CreateOleObject('Excel.Sheet');
      except
          showmessage('您系统未安装MS-EXCEL');
          exit;
      end;  try
          workBook :=eclApp.WorkBooks.add ;
          eclApp.workBooks.open(OpenDialog1.FileName );
          Form1.Caption:=OpenDialog1.FileName;
      except
          on  EOleException do
          begin
              WorkBook.close;
              eclApp.quit;
              eclApp:=Unassigned;
              exit;
          end;
      end;
    获取第i行,第j列的内容
    tempstr:=eclApp.activesheet.cells.item[i,j].value;