Inicio > VBA > Importar datos de una BD Access a Excel

Importar datos de una BD Access a Excel

090428_access_excelHola a todos, el siguiente post es uno de los que me ayudo para realizar un trabajo de la universidad, lo encuentro bastante sencillo y útil, la idea es importar la data de una tabla que tenemos en un archivo de Access, y con ayuda de una macros podremos exportar estos datos a nuestra hoja de Excel. Manos a la obra.

  • Tenemos creada una BD Access llamada Empleados.mdb ubicada en nuestra unidad C:, este archivo a su vez tiene una tabla llamada Employees (puedes usar el nombre del archivo y de la tabla que sea, en este caso solo es para cuestiones del ejemplo).
  • Tambien tenemos abierto el Excel y previamente hemos dado algunas libertades en la seguridad para la ejecución de Macros, para esto nos dirigimos a Herramientas / Macro / Seguridad, y elegimo el nivel de seguridad “Medio”, luego Aceptar.
  • Habilitamos la barra de herramientas de “Formulario” para poder sacar un boton, crear la macro y ejecutarla cada vez que presionamos en ese botón.
  • Al crear el boton en nuestra hoja de Excel, se abrirá una ventan llamada “Asignar Macro”, ahi ecribimos el nombre de nuestra Macro, para nuestro caso le llamaron ImportarAccess y luego le damos en Nuevo.
  • Se abrirá una ventana de Visual Basic donde veremos escrito dos líneas de código “SubImportarAccess()” y “End Sub”.
  • Dentro de esas dos líneas de código pegamos el siguiente script, el cual hará el trabajo de la conexión y la importación de la data.

‘dimensiones
Dim datConnection As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim strTabla As String
Dim lngTablas As Long
Dim i As Long

‘elegir uno de estas dos rutas al archivo Access
‘strDB = ThisWorkbook.Path & “\” & “db.mdb”
strDB = “C:\Empleados.mdb” ‘si en otra carpeta

‘nombre de la tabla del archivo Access
strTabla = “Employees

‘crear la conexión
Set datConnection = New ADODB.Connection
Set recSet = New ADODB.Recordset
datConnection.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source =” & strDB & “;”

‘consulta SQL
strSQL = “SELECT * FROM ” & strTabla & “
recSet.Open strSQL, datConnection
‘copiar datos a la hoja
ActiveSheet.Cells(2, 1).CopyFromRecordset recSet

‘copiar rótulos
lngCampos = recSet.Fields.Count
For i = 0 To lngCampos – 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next

‘desconectar
recSet.Close: Set recSet = Nothing
datConnection.Close: Set datConnection = Nothing

  • Antes de probarlo debemos hacer lo siguiente, en la misma ventana de Visual Basic nos vamos a Herramientas / Referencias,  buscamos la opción “Microsoft ActiveX Data Objects 2.8 Library” le damos check y luego Aceptar.
  • Cerramos la ventana de Visual Basic, la cual nos llevará nuevamente a nuestra hoja de Excel, y listo solo nos queda probar la Macro dándole click al botón creado anteriormente.
  • Veremos que la data de la BD de Access se importa a nuestra hoja.
  1. Jesarella
    enero 11, 2010 a las 2:32 pm

    Hola!
    Super útil la información
    Pero tengo un problema medio tonto que no sé como solucionar.

    En mi archivo.mdb tengo una tabla que se llama “Story Shears” y quiero copiar esa tabla, el problema es que cuando ejecuto la macro, me sale que no se encuentra la tabla “Story” como si no considerara el resto del nombre, y si le cambio el nombre a la tabla por “Story” a secas, la macro corre muy bien, pero la idea es que el usuario no tenga que cambiar los nombres de las tablas puesto que éstas están exportadas de un programa de cálculo estructural ajeno al usuario.

    No sé como puedo solucionar este pequeño, pero gran problema, espero que alguien pueda ayudarme ^_^

    Ojalá se haya entendido

  2. enero 11, 2010 a las 4:46 pm

    Enviame tus archivos a mi correo zipeados por favor y veré como puedo ayudarte..🙂
    santiagovirus@gmail.com

  3. marco
    enero 15, 2010 a las 8:09 pm

    Jesarella:
    El problema es que veo es que tienes un espacio en blanco entre las dos palabras del nombre de tu tabla, podrías llamar a tu tabla: Story_Shears, StoryShears, etc., sin espacios. Intentalo

  4. GR
    agosto 28, 2011 a las 4:41 pm

    Excelente aportacion, pero como podria modificar el codigo para que importara datos de una tabla en paradox (.DB)

    agradezco de antemano tus comentarios

    Saludos

  5. CarlosArboleda
    septiembre 21, 2011 a las 8:08 pm

    Hola, no se si me puedan ayudar, tengo una consulta en access(que es generada de a partir de una consulta de dos tablas vinculadas de archivo txt), pero al momento de generar en excel un archivo que este enlazado con esta consulta, solo me aparece dos columnas, las columnas que corresponden a los datos me sale vacía??

  6. CarlosArboleda
    septiembre 21, 2011 a las 8:09 pm

    Por favor enviar la respuesta a mi mail charlie06_ec@hotmail.com

  7. octubre 22, 2012 a las 4:12 pm

    Thanks for sharing your info. I truly appreciate your efforts
    and I am waiting for your further write ups thank you once
    again.

  8. David Garcia
    enero 27, 2013 a las 5:08 pm

    Buen dia

    Mil gracias por compartir sus conocimientos.
    Me preguntaba si existe una manera de consultar de una base da datos access segun un criterio. Es decir, pedir que solo traiga a la hoja excel, aquellos datos de la tabla access que coincida con el criterio (Ejemplo: traeme a la hoja excel todo aquello que diga “Luis”)
    Espero poder contar con su ayuda.
    dgarcia429@hotmail.com
    Mis respetos.

  9. enero 29, 2013 a las 4:05 am

    Claro, simplemente le cambias el query del SQL con la condición que quieras y listo..

  10. febrero 8, 2013 a las 5:56 am

    Fantastic beat ! I would like to apprentice even as you
    amend your web site, how could i subscribe for
    a weblog website? The account helped me a acceptable deal.

    I have been tiny bit acquainted of this your broadcast offered
    brilliant clear idea

  11. febrero 26, 2013 a las 9:32 am

    fantastic put up, very informative. I ponder why
    the other specialists of this sector do not notice this.
    You should proceed your writing. I am confident, you’ve a great readers’ base already!

    See this: ablate.katowice.pl, http://abducting.szczecin.
    pl

  12. marzo 21, 2013 a las 3:58 am

    Hurrah, that’s what I was searching for, what a information! existing here at this webpage, thanks admin of this web page.

  13. abril 11, 2013 a las 6:15 pm

    We are a bunch of volunteers and starting a brand new scheme
    in our community. Your website provided us with helpful info
    to work on. You’ve done a formidable activity and our entire community will probably be thankful to you.

  14. abril 18, 2013 a las 8:12 pm

    I must thank you for the efforts you have put in
    writing this blog. I’m hoping to check out the same high-grade content from you in the future as well. In fact, your creative writing abilities has inspired me to get my very own website now😉

  15. abril 21, 2013 a las 6:34 pm

    I seldom leave comments, however i did some searching and wound up
    here Importar datos de una BD Access a Excel | Relaciones Informáticas.
    And I do have 2 questions for you if you don’t mind. Could it be simply me or does it appear like some of these responses appear like coming from brain dead visitors?😛 And, if you are writing at additional social sites, I’d like to follow anything new you have to post.
    Would you list of the complete urls of your communal pages like your
    Facebook page, twitter feed, or linkedin profile?

  16. abril 27, 2013 a las 6:55 am

    It’s not my first time to pay a quick visit this web page, i am visiting this site dailly and take good information from here everyday.

  17. abril 27, 2013 a las 7:18 am

    I don’t even know how I ended up here, but I thought this post was great. I don’t know who
    you are but definitely you are going to a famous blogger if you are not already😉 Cheers!

  18. mayo 17, 2013 a las 8:27 am

    I have to thank you for the efforts you’ve put in penning this blog. I’m hoping to view the same high-grade
    content from you later on as well. In fact, your creative writing abilities has motivated
    me to get my own site now😉

  19. mayo 25, 2013 a las 6:21 am

    Thank you for the good writeup. It in fact was a
    amusement account it. Look advanced to more added agreeable
    from you! However, how could we communicate?

  20. mayo 28, 2013 a las 4:57 am

    I constantly emailed this weblog post page to all my contacts, for the reason that
    if like to read it then my contacts will too.

  21. junio 1, 2013 a las 1:14 am

    Attractive section of content. I just stumbled upon your
    website and in accession capital to assert that I get
    in fact enjoyed account your blog posts.
    Anyway I’ll be subscribing to your augment and even I achievement you access consistently rapidly.

  22. junio 25, 2013 a las 1:16 am

    Die Frau verlor kein einziges Wort über den Vorfall, wahrscheinlich treibt sie alles selbst häufig genug dadurch.
    Wenn du die Telefon sex Ladys total anfeuerst und mit versautem
    Dirty Talk dazu bringst sich diesen erregten Kitzler zu wichsen, hast du schon gewonnen.
    Die Aushilfe soll derweil an dem Schwanz reiben.

  1. septiembre 4, 2015 a las 3:08 am

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: