Usar los datos de un informe en excel

Quisiera a ver si me puedes indicar como se hace un enlace de access a excel, ya que tengo el siguiente problema, tengo una base de datos realizada en access la cual me da una serie de informes, y a su vez tengo realizado una hoja de excel lo que quiero es que lo datos que me da el informe de access poder pasarlos a excel pero a las mismas celdas que tiene en excel, e indicarle la hoja y celda a la quiero traspasar los datos de esos informes.

1 Respuesta

Respuesta
1
Private Sub AccessExcell_Click()
    Dim H As Long
    Dim V As Long
    Dim MiBase As Database
    Dim MiTabla As Recordset
    On Error GoTo ErrorExcel
    Dim objExcel As Excel.Application
    'Set MiBase = OpenDatabase(CurrentProject.Path & "\db1.mdb")
    'Esta linea anterior, por si deseamos abrir una tabla de cualquier
'otra MDB. En este ejemplo abrimos una tabla Local (Datos).
    Set MiBase = CurrentDb
    Set MiTabla = MiBase.OpenRecordset("SELECT * FROM Datos ORDER BY Nombre ASC", dbOpenDynaset)
    If MiTabla.RecordCount = 0 Then
        MsgBox "La base de datos esta vacia", vbCritical + vbOKOnly, "AVISO"
        Exit Sub
    End If
    Set objExcel = New Excel.Application
    objExcel.Visible = True
    'determina el numero de hojas que se mostrara en el Excel
    objExcel.SheetsInNewWorkbook = 1
    'Crea el Libro
    objExcel.Workbooks.Add
    With objExcel.ActiveSheet
        .Range(.Cells(1, 1), .Cells(1, 4)).Borders.LineStyle = xlContinuous
        .Cells(3, 1) = "NOMBRE"
        .Cells(3, 2) = "DIRECCION"
        .Cells(3, 3) = "POBLACION"
        .Cells(3, 4) = "CANTIDAD"
        .Range(.Cells(3, 1), .Cells(3, 4)).Font.Bold = True
        .Columns("D").HorizontalAlignment = xlHAlignRight
        .Columns("A").ColumnWidth = 30
        .Columns("B").ColumnWidth = 30
        .Columns("C").ColumnWidth = 30
        .Columns("D").ColumnWidth = 15
    End With
    objExcel.ActiveSheet.Cells(1, 1) = "BASE DE DATOS de ACCESS A EXCEL"
    objExcel.ActiveSheet.Range(objExcel.ActiveSheet.Cells(1, 1), objExcel.ActiveSheet.Cells(1, 4)).HorizontalAlignment = xlHAlignCenterAcrossSelection
    With objExcel.ActiveSheet.Cells(1, 1).Font
        .Color = vbRed
        .Size = 14
        .Bold = True
    End With
    V = 4
    H = 1
    Do While Not MiTabla.EOF
        DoEvents
        objExcel.ActiveSheet.Cells(V, H) = MiTabla.Fields!nombre
        objExcel.ActiveSheet.Cells(V, H + 1) = MiTabla.Fields!Direccion
        objExcel.ActiveSheet.Cells(V, H + 2) = MiTabla.Fields!Poblacion
        objExcel.ActiveSheet.Cells(V, H + 3) = MiTabla.Fields!Cantidad
        V = V + 1
        MiTabla.MoveNext
    Loop
    V = V + 3
    objExcel.Range(objExcel.Cells(V, 1), objExcel.Cells(V, 4)).Borders.LineStyle = xlContinuous
    objExcel.ActiveSheet.Range(objExcel.ActiveSheet.Cells(V, 1), objExcel.ActiveSheet.Cells(V, 4)).HorizontalAlignment = xlHAlignCenterAcrossSelection
    objExcel.ActiveSheet.Cells(V, 1) = "Francisco Javier García Aguado: Código Web del Programador"
    MiBase.Close
    Set objExcel = Nothing
    Exit Sub
ErrorExcel:
    MsgBox "Ha ocurrido un error de conexión con Excel." _
    & Chr(13) & Chr(13) & "Error : " & Err.Number _
    & Chr(13) & "Info : " & Err.Description _
    & Chr(13) & "Objeto : " & Err.Source _
    & Chr(13) & Chr(13) & "Revisa las referencias y la ruta de la base de datos. ", vbCritical, "Paco Avisa: Error al conectar con Excel"
Buenos días:
Te agradezco de antemano la prontitud en contestarme, he revisado lo que me has mandado, pero creo que esto es para una tabla, yo lo que decía era que al darme un informe access, este informe quiero pasarlo a excel, y a las celdas que yo le indique, de todas formas voy a probarlo por ver si me funciona. Pero es que no veo por ningún lado el informe.
Muchas gracias
Tienes que sacar la información con las tablas
El informe lo podrías pegar pero completo en excel pero supongo que eso no es lo que necesitas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas