none
El proveedor 'Microsoft.ACE.OLEDB.12.0' no está registrado en el equipo local

    Pregunta

  • vengo adelantando un proyecto utilizando bases de datos en access por medio de visual studio 2016. Se que existen drivers para solucionar este problema porque ya los he utilizado en mi computador personal, pero mi pregunta es ¿existe alguna manera para solucionar el problema sin tener que instalar drivers?. Esto es debido a que no quiero que sea necesario instalar los drivers, para solucionar este problema cada vez que vaya a utilizar la aplicación en otro computador.
    miércoles, 26 de abril de 2017 18:00

Respuestas

  • Hola, como bien mencionas existen drivers  para solucionar ese problema , siempre vas a tener que instalarlos ,ahora algunos de esos drivers vienen con la instalación del office, el problema es cual versión de office utilizas,de acuerdo a ello te permitirá utilizar el driver correspondiente en cuanto al número de versión(en este caso 12) y si esta compilado en x86 y x64 , queda claro entonces que tu proyecto debe ser compilado en la misma versión que tengas instalada del driver (x86,x64) cambiandolo en las propiedades

    una cadena de conexión como la que has especificado esta definida aqui , en ella debes poner la versión que corresponde al driver que tienes instalado

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
    Persist Security Info=False;


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.Saludos. Lima-Perú.

    miércoles, 26 de abril de 2017 20:27

Todas las respuestas

  • Hola, como bien mencionas existen drivers  para solucionar ese problema , siempre vas a tener que instalarlos ,ahora algunos de esos drivers vienen con la instalación del office, el problema es cual versión de office utilizas,de acuerdo a ello te permitirá utilizar el driver correspondiente en cuanto al número de versión(en este caso 12) y si esta compilado en x86 y x64 , queda claro entonces que tu proyecto debe ser compilado en la misma versión que tengas instalada del driver (x86,x64) cambiandolo en las propiedades

    una cadena de conexión como la que has especificado esta definida aqui , en ella debes poner la versión que corresponde al driver que tienes instalado

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
    Persist Security Info=False;


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.Saludos. Lima-Perú.

    miércoles, 26 de abril de 2017 20:27
  • MUCHAS GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    jueves, 11 de octubre de 2018 21:15
  • Hola,

    Tengo Office 2016 y necesito cargar datos de una hoja excel 2016 a data grid view, no obstante me sale el mismo mensaje de error "El proveedor no esta registrado en el equipo local"

    este es el scrip

    Public Class DAOImportExcel
        Sub importarExcel(ByVal tabla As DataGridView)
            Dim myFileDialog As New OpenFileDialog()
            Dim xSheet As String = ""

            With myFileDialog
                .Filter = "Excel Files |*.xlsx"
                .Title = "Open File"
                .ShowDialog()
            End With
            If myFileDialog.FileName.ToString <> "" Then
                Dim ExcelFile As String = myFileDialog.FileName.ToString

                Dim ds As New DataSet
                Dim da As OleDbDataAdapter
                Dim dt As DataTable
                Dim conn As OleDbConnection

                xSheet = InputBox("Digite el nombre de la Hoja que desea importar", "Complete")
                conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & ExcelFile & "; " & "Extended Properties= 'Excel 12.0 Xml;HDR=Yes'")

                Try
                    da = New OleDbDataAdapter("SELECT * FROM  [" & xSheet & "$]", conn)

                    conn.Open()
                    da.Fill(dt)
                    'dt = ds.Tables("MyData")
                    tabla.DataSource = dt
                    'tabla.DataMember = "MyData"
                Catch ex As Exception
                    MsgBox("Inserte un nombre valido de la Hoja que desea importar" & ex.Message)
                Finally
                    conn.Close()
                    MsgBox("Se ha cargado la importacion correctamente", MsgBoxStyle.Information, "Importado con exito")
                End Try
            End If

        End Sub

    martes, 29 de enero de 2019 1:18