Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Es kann keine Instanz des OLE DB-Anbieters Microsoft.Jet.OLEDB.4.0 für den Verbindungsserver null erstellt werden

Ich habe MS Sql Server 2012 und Office 2013. Dies scheint sehr pingelig zu sein, daher müssen Sie sich möglicherweise an Ihre jeweiligen Versionen anpassen.

  1. Laden Sie die 64-Bit-Version von Microsoft.ACE.OLEDB.12.0 für Windows hier herunter:https://www.microsoft.com/en-us/download/details.aspx?id=13255
  2. Installieren Sie es auf Ihrem Server.
  3. Überprüfen Sie den Benutzer, der SQL Server ausführt, und stellen Sie sicher, dass der Benutzer Zugriff auf das temporäre Verzeichnis C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp hat, wenn es sich um ein lokales Dienstkonto handelt, oder auf C:\Windows\ServiceProfiles\NetworkService\ AppData\Local\Temp, wenn es sich um ein Netzwerkdienstkonto handelt.
  4. Konfigurieren Sie „Ad Hoc Distributed Queries“ und aktivieren Sie die Microsoft.ACE.OLEDB Dateien wie diese:

Hier sind die SP_CONFIGURE-Befehle:

SP_CONFIGURE 'show advanced options', 1; 
GO 
RECONFIGURE; 
SP_CONFIGURE 'Ad Hoc Distributed Queries', 1; 
GO 
RECONFIGURE; 
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1   
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParam', 1

Auf neuerem SQL Server 2014 Sie hatten 'DynamicParameters' verwendet statt 'DynamicParam'

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

Stellen Sie sicher, dass Sie msexcl40.dll wie folgt registrieren:

regsvr32 C:\Windows\SysWOW64\msexcl40.dll