none
Conexion a base de datos de Access desde Visual Studio RRS feed

  • Pregunta

  • Quiero realizar una conexión con un archivo de base de datos de Access. Al intentar hacer la conexión me salio una ventana que decía: "El proveedor microsoft.ACE.OLEDB.12.0 no esta registrado en el equipo local". Para solucionarlo seguí las instrucciones dadas en https://www.microsoft.com/es-ES/download/details.aspx?id=13255 para poder bajar el Driver.
    Actualmente yo tengo la versión de office del 2010 de 64-bits por lo que tuve que descargarme el driver de AccessDataBaseEngine_X64. 
    Por lo que tengo entendido, esto solucionaria el problema, pero luego de reiniciar la computadora después de instalar el driver, el problema siguie estando. Como lo puedo solucionar?
    Gracias
    lunes, 11 de mayo de 2020 15:25

Respuestas

  • Eso soluciona el problema para los ejecutables que compiles desde Visual Studio, pero no para el propio Visual Studio.

    El problema es que Visual Studio es una aplicación de 32 bits, por lo que necesita el proveedor ACE de 32 bits.

    Pero si compilas un programa y lo ejecutas en la misma máquina, de manera predeterminada se ejecuta en 64 bits, por lo que requiere el ACE de 64 bits. Si es necesario, puedes obligarlo a rodar en 32 bits cambiando la configuración, en cuyo caso bastaría el ACE de 32 bits.

    El instalador del ACE no te dejará instalar simultáneamente el Office de 64 bits y el ACE de 32. Tienen que ser los dos de 32 o los dos de 64, pero no te los deja mezclar. En Internet encontrarás trucos para instalar las dos versiones editando el Registro de Windows, pero esto no está oficialmente soportado.

    Mi preferencia personal está en dejar la versión de 64 bits. Esto implica que no se puede usar el diseñador en Visual Studio, pero la realidad es que en la práctica no lo utilizo, sino que tecleo manualmente la cadena de conexión dentro de mi código y prescindo de las herramientas de diseño.

    lunes, 11 de mayo de 2020 16:36

Todas las respuestas

  • Eso soluciona el problema para los ejecutables que compiles desde Visual Studio, pero no para el propio Visual Studio.

    El problema es que Visual Studio es una aplicación de 32 bits, por lo que necesita el proveedor ACE de 32 bits.

    Pero si compilas un programa y lo ejecutas en la misma máquina, de manera predeterminada se ejecuta en 64 bits, por lo que requiere el ACE de 64 bits. Si es necesario, puedes obligarlo a rodar en 32 bits cambiando la configuración, en cuyo caso bastaría el ACE de 32 bits.

    El instalador del ACE no te dejará instalar simultáneamente el Office de 64 bits y el ACE de 32. Tienen que ser los dos de 32 o los dos de 64, pero no te los deja mezclar. En Internet encontrarás trucos para instalar las dos versiones editando el Registro de Windows, pero esto no está oficialmente soportado.

    Mi preferencia personal está en dejar la versión de 64 bits. Esto implica que no se puede usar el diseñador en Visual Studio, pero la realidad es que en la práctica no lo utilizo, sino que tecleo manualmente la cadena de conexión dentro de mi código y prescindo de las herramientas de diseño.

    lunes, 11 de mayo de 2020 16:36
  • Muchas Gracias!

    Entonces si yo desinstalara la versión de office de 64 bits y instalara la de 32 bits con el driver de 32 bits tendría que funcionar la conexión?


    camila

    martes, 12 de mayo de 2020 16:43
  • Entonces si yo desinstalara la versión de office de 64 bits y instalara la de 32 bits con el driver de 32 bits tendría que funcionar la conexión?

    Sí, funcionaría la conexión desde Visual Studio... pero entonces NO funcionaría el programa al ejecutarlo, salvo que tomes precauciones especiales para forzarlo a ejecutarse en 32 bits.

    martes, 12 de mayo de 2020 16:59