2011-07-01 142 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 
相關問題