SQL Server: Não é possível inicializar o objeto de fonte de dados do provedor OLE DB “Microsoft.ACE.OLEDB.12.0” para o servidor vinculado “(null)”

Eu estou tentando executar a seguinte consulta:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=C:\Somefile.xlsx',
'SELECT * FROM [Sheet$]')

Mas eu recebo este erro:

Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".

Eu tentei o seguinte:

sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

E:

USE [master]
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

Quando vou para 'Objetos de servidor' -> 'Servidores vinculados' -> 'Provedores', o arquivo Microsoft.ACE.OLEDB.12.0 é listado.

O Acess Database Engine x64 está instalado, todos os produtos do Office são de 64 bits e meu SQL Server também é de 64 bits.

Se isso importa, todos os usuários têm acesso à pasta Temp na pasta Usuários.

(Estas são todas as sugestões que encontrei em respostas semelhantes a esta pergunta)

Editar: usando o SQL Server 2014.

questionAnswers(3)

yourAnswerToTheQuestion