OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
可以当成一个SQL上的表来处理。
 
eg:
inert 表 select * from  OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

解决方案 »

  1.   

    Sub test()
        Dim iDb As New ADODB.Connection
        iDb.Open "SQL数据库连接字符串"
        iDb.Execute "insert into 表 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;IMEX=2;DATABASE=F:\My Documents\客户资料.xls',Sheet1$)"
    End Sub
      

  2.   

    HDR=yes表示第一行为字段名,如果EXCEL文件中无字段名,则用:HDR=NO
      

  3.   

    --导出
    EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 out c:\table1.xls -c -q -S 实例名 -U 用户名 -P 口令
    --导入
    EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 in c:\table1.xls -c -q -S 实例名 -U 用户名 -P 口令
      

  4.   

    nforcedzh(翔天) 谢谢您提供的方法,但在执行时还是遇到了一点问题,就是您写的参数我有不明白的地方,  
    EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名 out c:\table1.xls -c -q -S 实例名 -U 用户名 -P 口令-S 实例名:指什么而且我在导出时数据导出了但没有字段名即第一列
    -U 在没设用户时, 写-U sa 对吗, 它应是一种什么样的格式呢??
    还有在导入时只导入过去了第一条记录;
    您知道这是什么原因吗?
      

  5.   

    实例名一般是指你机器的名字
    没设用户时默认的用户名就是sa,口令可以为空
    一般导出时第一行是字段名,一般不导出 
    例如:(就是一个密码为空并且没用设用户的导出例子)供你参考一下
    EXEC master..xp_cmdshell 'bcp master.dbo.sysobjects out c:\table1.xls -c -q -S 机器名 -U "sa" -P'