2011-07-01 135 views
0

我要插入从Excel中的数据文件导入到SQL服务器.. 我用下面的SQL语句:导入Excel数据到SQL Server

SELECT * 
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
        'Excel 8.0;Database=Y:\Path.xls', 
        'SELECT * FROM [Sheet$]') 

但我收到以下错误 -

消息7403级别16状态1行1
OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”尚未注册。

回答

2

您可以改为使用SQL Server的导入数据向导。

0

尝试运行此:

USE [tableName] 
GO 

EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1 
GO 

EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1 
GO 

在查询

,并使用Microsoft.ACE.OLEDB.12.0代替“Microsoft.Jet。 OLEDB.4.0“,适用于我

0

您可以使用下面的代码imp从Excel中删除SQL中的数据。您只需要了解您必须在VBA中添加库,然后才能使用下面的代码。 进入VBA,然后添加参考--Microsoft ActiveX Data objects 2.8 Library。

Sub sbADOExample() 
Dim sSQLQry As String 
Dim ReturnArray 
Dim Conn As New ADODB.Connection 
Dim mrs As New ADODB.Recordset 
Dim DBPath As String, sconnect As String 
DBPath = ThisWorkbook.FullName 
'You can provide the full path of your external file as shown below 
'DBPath ="C:\InputData.xlsx" 
sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';" 
Conn.Open sconnect 
sSQLSting = "SELECT * From [Sheet1$]" ' Your SQL Statement (Table Name= Sheet Name=[Sheet1$]) 
mrs.Open sSQLSting, Conn 
'=>Load the Data into an array 
'ReturnArray = mrs.GetRows 
''OR'' 
'=>Paste the data into a sheet 
Sheet2.Range("A2").CopyFromRecordset mrs 
'Close Recordset 
mrs.Close 
'Close Connection 
Conn.Close 
End Sub 
相关问题