none
Exportar datos desde un ACESS a un EXCEL sin pasar por Datagridview RRS feed

  • Pregunta

  • Hola a todos,

    me encuentro realizando un proyecto y me ha surgido una duda.

    Resulta que mi formulario dispone de varios datagridview. Los datos que aparecen en estos datagridview los obtengo de un fichero de access a través de una conexión OleDB. Esto me funciona perfectamente. Ahora bien, dentro de este fichero de access hay una "Consulta" (query) que me da como resultado una tabla de datos.

    Necesito que, tras pulsar un botón de mi formulario, se me cree un fichero excel y se me guarden los datos de la tabla de esta query en el fichero excel pero sin que estos se representen en ningún datagridview del formulario. Recalco lo del datagridview ya que si que he visto muchos ejemplos este tipo.

    En el código que os pongo a continuación podéis ver cuál es la idea de como puede ser esto:

     Public oExcel As Microsoft.Office.Interop.Excel.Application = Nothing
        Public oWorkBook As Microsoft.Office.Interop.Excel.Workbook = Nothing
    
     Sub CreateExcel()
    
            Dim ds As New DataSet       'Creo una variable de tipo DataSet para guardar los datos de la Query
            Dim adp As New OleDb.OleDbDataAdapter   'Creo el adaptador para guardarlo en una tabla
    
            Strsql = "SELECT CHECK_EMITIR, LINE_ID FROM TREE ORDER BY LINE_ID;"  'String de la SQL para  ACCESS
         
            adp = New OleDb.OleDbDataAdapter(Strsql, conn)  'Cargo el adaptador (la variable conn es la conexión OleDB que ya se ha implementado en otra rutina)
            ds.Tables.Add("Tabla")         'Añado el DataSet a la tabla
            adp.Fill(ds.Tables("Tabla"))   'Cargo los valores de la query a la Tabla
    
    
    
            oExcel = New Microsoft.Office.Interop.Excel.Application     'Inicializo excel
            oExcel.Visible = True                                       'Lo hago visible
            oWorkBook = oExcel.Workbooks.Add                             ' le añado un libro  
    
            '------ AQUÍ DEBERÍAN IR LAS OPERACIONES PARA CARGAR LOS DATOS EN EL EXCEL ---- '
            '                                                                               '
            '                                                                               '
            '                                                                               '
            '------------------------------------------------------------------------------ '
            oWorkBook.SaveAs("C:\.............")  'Guardo el ibro en la sguiente ruta
    
            'CIERRO LOS ENLACES
    
            oWorkBook.Close()
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oWorkBook)
            oExcel.Quit()
    
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel)
    
            oWorkBook = Nothing
            oExcel = Nothing
    
        End Sub

    Esta rutina la llamo desde un botón. Me gustaría saber qué método se os ocurre para cargar los datos de la query en el excel a través de la conexión OleDB que tengo hecha.

    Gracias. Un saludo!

    miércoles, 11 de noviembre de 2015 14:16

Respuestas

Todas las respuestas