Muchas veces tenemos la necesidad de copiar datos de una tabla o consulta Access a una hoja Excel. Este paso es sencillo, simplemente copiar y pegar. Copiamos los datos en Access y los pegamos en Excel, pero si el tamaño/cantidad de datos es grande esta operación puede dejar literalmente “tostado” nuestro ordenador durante varios minutos. Los minutos en los que se queda “tostado” variaran dependiendo de la cantidad de datos y la memoria RAM que tenga nuestro ordenador.

Afortunadamente existe una mejor solución para copiar datos de una tabla o consulta Access a Excel, es un poco más compleja, pero no mucho más. Vamos a crear una Macro y usar la función de VBA “Cells.CopyFromRecordset” para copiar tablas y consultas de Access en segundos.

Pasos:

1) Abrir Excel

2) Abrir el editor de Macros (Pulsar ALT+F11)

3) Copiar y pegar la siguiente Macro:

‘==========================================
Public Sub Copiar_Tabla_Access()
  Dim oConexion As ADODB.Connection
  Dim rsTabla As ADODB.Recordset
  Dim sNombreTabla As String
  Dim sNombreAccess As String
  Dim i As Integer

  sNombreAccess = InputBox(“¿Ruta y nombre del fichero Access?”)
  If sNombreAccess <> “” Then
    sNombreTabla = InputBox(“¿nombre de la tabla/consulta?”)
    Set oConexion = New ADODB.Connection
    oConexion.CursorLocation = adUseClient
    oConexion.Open “PROVIDER=Microsoft.Jet.OLEDB.4.0;” & _
                                “Data Source=” & sNombreAccess & “;”
    Set rsTabla = New ADODB.Recordset
    rsTabla.Open “Select * From [" & sNombreTabla & "]“, _
                         oConexion, _
                         adOpenStatic
    ActiveSheet.Cells.CopyFromRecordset rsTabla
    ActiveSheet.Rows(“1:1″).Insert Shift:=xlDown
    For i = 0 To rsTabla.Fields.Count – 1
      ActiveSheet.Cells(1, i + 1).Value = rsTabla.Fields(i).Name
    Next
    rsTabla.Close
    oConexion.Close
    Set rsTabla = Nothing
    Set oConexion = Nothing
  End If
End Sub
‘==========================================

4) Guardamos los cambios.

5) Ahora ya podemos ejecutar la Macro para copiar los datos de una tabla o consulta Access en Excel. Abrimos la ventana de Macros en el Menú Herramientas > Macro > Macros (o pulsar ALT+F8).

6) Seleccionamos la Macro que hemos creado “Copiar_Tabla_Access” y pulsamos el botón “ejecutar“.

7) La Macro nos pedirá:
    a) La ruta y el nombre del fichero Access, por ejemplo “c:\temp\miAccess.mdb”.
    b) El nombre de la tabla o consulta, por ejemplo “miTabla”.

8) Ya hemos terminado.

Compartelo!
  • Digg
  • Technorati
  • del.icio.us
  • Meneame
  • Ma.gnolia
  • Facebook
  • Netvibes
  • Google Bookmarks
  • BarraPunto
  • LinkedIn
  • MisterWong
  • Reddit
  • StumbleUpon
  • Wikio
  • Sphinn
  • TwitThis
  • Mixx
  • Bitacoras.com