martes, 7 de septiembre de 2010

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

Una de las cosas en las que me he entretenido estos días es en desarrollar un módulo que leyera un archivo Excel sin utilizar Interop. Para ello utilicé OLEDB y en mi máquina virtual de 32 bits todo funcionaba bien pero en el servidor de 64 me salía el error que aparece en el título. Esto se debe a que el componente de conexión para Office 2003/2007 sólo está disponible en 32 bits así que una de las posibles soluciones es compilar el proyecto en modo 32 bits.

Os dejo el link a la página de descarga del componente de conexión para datos de Office

http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en

Como dije en el párrafo anterior, una de las soluciones es recompilar en modo 32 bits, pero hay otra que me ha gustado más. El componente de conexión de datos de Office 2010 está disponible en 64 bits, por tanto, no hace falta recompilar nada y de esta forma, el desarrollo ya está preparado para leer archivos de Office 2010. Este componente se puede descargar de la página:

http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

Saludos

4 comentarios:

Miguel Ocaña dijo...

Pues hace cosa de un mes me tocó hacer eso mismo, y también recurrí a esos links, está bien tenerlos ahí a mano para próximas ocasiones

Anónimo dijo...

Muchas gracias!
Funcionó perfecto

Anónimo dijo...

Tuviste que reiniciar el Server?

Jose dijo...

Pues creo que sí tuvimos que reiniciar los servidores pero hace bastante que lo hice y no me acuerdo...