none
Error al intentar conectarme a Libro de excel 2007

    Pregunta

  • Hola buenas tardes, intento conectarme a un archivo de excel, exactamente a una hoja de calculo como una tabla de una base de datos, pero me genera un error que coloco mas abajo en negrilla, espero me puedan ayudar. Gracias

                                Dim msCadConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &

    Application.StartupPath & "\Libro1.xlsx;Extended Properties = 'Excel 12.0;Xml'"

                Dim lsQuery As String = "Select * From [Hoja1$]"
                Using loConexion As New OleDbConnection(msCadConexion)
                    Using loDataAdapter As New OleDbDataAdapter(lsQuery, loConexion)
                        Dim loDataTable As DataTable = New DataTable()
                        loDataAdapter.Fill(loDataTable)

                        Me.dtgExcel.DataSource = loDataTable

    Se produjo una excepción en el inicializador de tipo de

    'System.Transactions.Diagnostics.DiagnosticTrace'.

    domingo, 16 de abril de 2017 18:11

Respuestas

  • "Vladimir Angarita" escribió:

    > ... intento conectarme a un archivo de excel, ... pero me genera un error que
    > coloco mas abajo en negrilla ...
    >
    > Se produjo una excepción en el inicializador de tipo de
    >
    > 'System.Transactions.Diagnostics.DiagnosticTrace'.

    Hola, Vladimir:

    Observa bien las propiedades extendidas que estás especificando en la cadena de conexión con el libro de Excel:

        Application.StartupPath & "\Libro1.xlsx;Extended Properties = 'Excel 12.0;Xml'>"

    Te comento que el ISAM 'Excel 12.0;Xml' NO EXISTE. Existe el ISAM instalable 'Excel 12.0 Xml', sin el carácter de punto y coma, por lo que me extraña bastante el mensaje de error que estás obteniendo, cuando en realidad, entiendo que el mensaje de error que deberías de obtener es algo parecido a "No se encuentra el ISAM instalable ...". ¿?

    Prueba a establecer la conexión con el libro de Excel tal cual indico a continuación:

            ' Establecemos una conexión con un archivo de Excel 2007 o superior.
            '
            Dim cadenaConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                 "Extended Properties='Excel 12.0 Xml;HDR=Yes';" & _
                 "Data Source=" & IO.Path.Combine(Application.StartupPath, "Libro1.xlsx")
    
            Dim dt As New DataTable()
    
            Try
                Using cnn As New OleDbConnection(cadenaConexion)
                     Dim cmd As OleDbCommand = cnn.CreateCommand()
                     cmd.CommandText = "SELECT * FROM [Hoja1$]"
                     Dim da As New OleDbDataAdapter(cmd)
                     da.Fill(dt)
                End Using
    
                Me.dtgExcel.DataSource = dt
    
            Catch ex As Exception
                ' Se ha producido un error
                MessageBox.Show(ex.Message)
    
            End Try

    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.


    lunes, 17 de abril de 2017 7:20
    Moderador

Todas las respuestas

  • Saludos:

    No nos dices las circunstancias del error, por lo que pienso que puedes ser uno de dos posibles errores:

    https://sqlbackupandftp.com/forum/yaf_postst568_Error-SystemTransactionsDiagnosticsDiagnosticTrace.aspx

    http://stackoverflow.com/questions/7433799/keep-getting-an-error-when-using-oledbconnection

    Espero ayude.

    JOSE LUIS


    Dios NO los llamo LAS DIEZ RECOMENDACIONES

    domingo, 16 de abril de 2017 23:48
  • "Vladimir Angarita" escribió:

    > ... intento conectarme a un archivo de excel, ... pero me genera un error que
    > coloco mas abajo en negrilla ...
    >
    > Se produjo una excepción en el inicializador de tipo de
    >
    > 'System.Transactions.Diagnostics.DiagnosticTrace'.

    Hola, Vladimir:

    Observa bien las propiedades extendidas que estás especificando en la cadena de conexión con el libro de Excel:

        Application.StartupPath & "\Libro1.xlsx;Extended Properties = 'Excel 12.0;Xml'>"

    Te comento que el ISAM 'Excel 12.0;Xml' NO EXISTE. Existe el ISAM instalable 'Excel 12.0 Xml', sin el carácter de punto y coma, por lo que me extraña bastante el mensaje de error que estás obteniendo, cuando en realidad, entiendo que el mensaje de error que deberías de obtener es algo parecido a "No se encuentra el ISAM instalable ...". ¿?

    Prueba a establecer la conexión con el libro de Excel tal cual indico a continuación:

            ' Establecemos una conexión con un archivo de Excel 2007 o superior.
            '
            Dim cadenaConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                 "Extended Properties='Excel 12.0 Xml;HDR=Yes';" & _
                 "Data Source=" & IO.Path.Combine(Application.StartupPath, "Libro1.xlsx")
    
            Dim dt As New DataTable()
    
            Try
                Using cnn As New OleDbConnection(cadenaConexion)
                     Dim cmd As OleDbCommand = cnn.CreateCommand()
                     cmd.CommandText = "SELECT * FROM [Hoja1$]"
                     Dim da As New OleDbDataAdapter(cmd)
                     da.Fill(dt)
                End Using
    
                Me.dtgExcel.DataSource = dt
    
            Catch ex As Exception
                ' Se ha producido un error
                MessageBox.Show(ex.Message)
    
            End Try

    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.


    lunes, 17 de abril de 2017 7:20
    Moderador