none
El proveedor 'MICROSOFT.JET.OLEDB.4.0' no está registrado en el equipo local. / Error al crear el formulario. Consulte Exception.InnerException para obtener más detalles RRS feed

  • Pregunta

  • Hola tengo dos problemas:

    1- al querer ingresar datos a  una base datos access con Visual, el programa se detiene en el modulo de ingreso con el siguiente error: "El proveedor 'MICROSOFT.JET.OLEDB.4.0' no está registrado en el equipo local."

    Para solucionar este problema voy a las propiedades en "Opciones de compilación avanzada" y cambio el de "anycpu" a x86. pero al hacerlo me deriva este otro problema

    2- al querer correr el programa me aparece este error: "Error al crear el formulario. Consulte Exception.InnerException para obtener más detalles. Error: No se puede cargar el archivo o ensamblado 'Datos, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto."

    si alguien me da una solucion para ambos problemas muchas gracias

    domingo, 3 de abril de 2016 13:40

Respuestas

  • "Agustin666" escribió:

    > ahora tengo otro problema:
    >
    > "No es un nombre de archivo válido."
    >
    > Esta es la coneccion:
    >
    > Dim connString As String = ("PROVIDER=MICROSOFT.JET.OLEDB.4.0;
    > DATA SOURCE=" & My.Application.Info.DirectoryPath +
    > "C:\Program Files (x86)\Control Stock\Control.accdb")

    Como el archivo de Access tiene extensión *.accdb, no me queda más que pensar que la base de datos tenga formato Access 2007 o superior. Si es así, NO PUEDES utilizar el proveedor Microsoft.Jet.OleDb.4.0, tendrás que sustituirlo por el proveedor Microsoft.ACE.OLEDB.12.0.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    domingo, 3 de abril de 2016 18:56
    Moderador
  • Lo único que tienes que hacer es especificar el valor Provider=Microsoft.ACE.OLEDB.12.0 en la cadena de conexión:

        Dim connstring As String = "Provider=Microsoft.ACE.OLEDB.12.O;Data Source=C:\Carpeta\archivo.accdb"

    Modifica el valor del parámetro Data Source del ejemplo y le indicas la ruta completa donde se localiza tu archivo de Access con la extensión *.accdb.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    domingo, 3 de abril de 2016 22:00
    Moderador

Todas las respuestas

  • Hola

    "El proveedor 'MICROSOFT.JET.OLEDB.4.0' no está registrado en el equipo local."

    Este error te lo genera en la maquina de desarrollo o en maquinas clientes ???

    Si es en tu maquina de desarrollo deberias ir al menu

    Proyecto --> Agregar Referencia --> COM ---->  aqui seleccionas la version del motor de la base de  datos con la vas a treabajar

    NOTA : Acuerdate que una version anterior funciona para una version mas nueva de el motor de la DB , pero no al contrario

    Si es en maquinas clientes

    Asegurate de tener instalado o estar trabajando tanto en mauina cliente y desarrollo con versiones de MS OFFICE tal como te explico en la NOTA

    Otra cosa no c por q cambial la plataforma  a X86 ...No c que tendria q ver con el motor de la DB


    EFRAIN MEJIAS C VALENCIA - VENEZUELA


    domingo, 3 de abril de 2016 14:30
  • gracias pero que motor de motor de la base de datos tendria que seleccionar, para una base de datos en access? me aparecen cientos en la lista COM, gracias de nuevo por responder
    domingo, 3 de abril de 2016 14:57
  • el motor es de acuerdo con la Version OFFice q usas  2007 es 12.0  2010 es 14.0 por hay te guias

    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    domingo, 3 de abril de 2016 15:02
  • "Agustin666" escribió:

    > 1- al querer ingresar datos a  una base datos access con Visual, el programa
    > se detiene en el modulo de ingreso con el siguiente error: "El proveedor
    > 'MICROSOFT.JET.OLEDB.4.0' no está registrado en el equipo local."
    >
    > Para solucionar este problema voy a las propiedades en "Opciones de compilación
    > avanzada" y cambio el de "anycpu" a x86...

    Hola:

    No le des más vueltas al tema del error "El proveedor 'MICROSOFT.JET.OLEDB.4.0'" porque la solución es la que has indicado, ya que lo más seguro es que tu equipo tenga una versión del sistema operativo de 64 bits, y no existe versión de 64 bits del citado proveedor, de ahí el error que estabas obteniendo, por tanto, no busques en las referencias del proyecto ninguna biblioteca COM, sea de Office o no, porque "por ahí no van los tiros". ;-)

    > ... pero al hacerlo me deriva este otro problema
    >
    > 2- al querer correr el programa me aparece este error: "Error al crear el formulario

    Esto ya es más complicado de averiguar sin conocer los componentes que estás utilizando en tu proyecto, y si son compatibles con una arquitectura de 32 bits (x86). Por cambiar de plataforma de destino, normalmente no se obtiene el error que comentas.

    > No se puede cargar el archivo o ensamblado 'Datos, Version=1.0.0.0,
    > Culture=neutral, PublicKeyToken=null' ni una de sus dependencias

    ¿Ese ensamblado lamado 'Datos' es tuyo o de alguna tercera persona? ¿Se trata de un archivo *.exe o de una biblioteca *.dll? ¿Podrías facilitar más datos para que conozcamos un poco más a dicho ensamblado? ;-)

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    domingo, 3 de abril de 2016 15:50
    Moderador
  • gracias ya solucione el problema, elimine unas cosas cosas que no debian estar y listo, pero ahora tengo otro problema:

    "No es un nombre de archivo válido."

    Esta es la coneccion:

       

    Dim connString As String = ("PROVIDER=MICROSOFT.JET.OLEDB.4.0; DATA SOURCE=" & My.Application.Info.DirectoryPath + "C:\Program Files (x86)\Control Stock\Control.accdb")

    Dim Conección As OleDbConnection = New OleDbConnection

    y este es el modulo que uso para cargar los datos:

    Public Sub ingresarproducto(ByVal producto As String, ByVal costo As Decimal, ByVal porcentaje As Integer, ByVal codigo As Integer, ByVal limite As Double, ByVal cantidad As Double, ByVal tipo As String)

            Conección.ConnectionString = connString

            Dim conexion As New OleDbConnection
            Dim comando As New OleDbCommand
            comando.CommandText = "Insert into Productos(producto, costo, porcentaje, codigo, limite, tipo, cantidad) Values""('" & producto & "','" & costo & "', '" & porcentaje & "','" & codigo & "','" & limite & "', '" & tipo & "', '" & cantidad & "' ) "
            comando.Connection = Conección
            Conección.Open()
            comando.ExecuteNonQuery()
            Conección.Close()

        End Sub

    si puede corregir el error por que la verdad no lo encuentro. respecto a la direccion del archivo de la base de datos ya lo revise y esta correcto

     
    domingo, 3 de abril de 2016 17:58
  • "Agustin666" escribió:

    > ahora tengo otro problema:
    >
    > "No es un nombre de archivo válido."
    >
    > Esta es la coneccion:
    >
    > Dim connString As String = ("PROVIDER=MICROSOFT.JET.OLEDB.4.0;
    > DATA SOURCE=" & My.Application.Info.DirectoryPath +
    > "C:\Program Files (x86)\Control Stock\Control.accdb")

    Como el archivo de Access tiene extensión *.accdb, no me queda más que pensar que la base de datos tenga formato Access 2007 o superior. Si es así, NO PUEDES utilizar el proveedor Microsoft.Jet.OleDb.4.0, tendrás que sustituirlo por el proveedor Microsoft.ACE.OLEDB.12.0.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    domingo, 3 de abril de 2016 18:56
    Moderador
  • tengo un cul. para los errores, ahora me sale lo siguiente:

    "No se ha especificado un proveedor OLE DB en ConnectionString.  Un ejemplo sería, 'Provider=SQLOLEDB;'."

    domingo, 3 de abril de 2016 21:35
  • Lo único que tienes que hacer es especificar el valor Provider=Microsoft.ACE.OLEDB.12.0 en la cadena de conexión:

        Dim connstring As String = "Provider=Microsoft.ACE.OLEDB.12.O;Data Source=C:\Carpeta\archivo.accdb"

    Modifica el valor del parámetro Data Source del ejemplo y le indicas la ruta completa donde se localiza tu archivo de Access con la extensión *.accdb.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    domingo, 3 de abril de 2016 22:00
    Moderador