Código VBA para importar datos de tabla/consulta de Access a Excel

Código VBA para importar datos de consulta de tabla de Access a Excel
Tabla de contenido

Importar tabla de Access a Excel con VBA (imágenes y código)

¿De qué se trata?

Este código VBA le ayuda a descargar o importar Acceda a Datos de tabla o consulta a Excel en un clic.

 

¿Por qué?

Puede importar datos de tablas de Access a Excel sin ni siquiera abrir la base de datos de Access.

Cómo importar datos de tablas de Access a Excel




Paso 1: Abra el libro de Excel y fue al constructor de código VBA (Alt + F11) y Abrir un nuevo módulo.

Módulo X

Paso 2: Copie y pegue el siguiente código.

				
					Sub importAccessdata()

Dim cnn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim sQRY As String

Dim strFilePath As String

strFilePath = "C:\DatabaseFolder\myDB.accdb" 'Sustituye 'DatabaseFolder' y 'myDB.accdb' por la ruta y el nombre de tu BD

Set cnn = Nueva conexión ADODB.Connection

Set rs = Nuevo ADODB.Recordset

cnn.Open "Proveedor=Microsoft.ACE.OLEDB.12.0;" & _

"Data Source=" & strFilePath & ";"

sQRY = "SELECT * FROM tblData" 'Sustituya 'tblData' por el nombre de la tabla de la base de datos Access o el nombre de la consulta desde la que desea descargar los datos

rs.CursorLocation = adUseClient

rs.Open sQRY, cnn, adOpenStatic, adLockReadOnly

Aplicación.ScreenUpdating = False

Sheet1.Range("A1").CopyFromRecordset rs

rs.Cerrar

Set rs = Nada

cnn.Close

Set cnn = Nada

Salir de Sub

End Sub
				
			

Paso 3: Haga clic en el botón Ejecutar o F5 (También puede insertar un botón / forma en la hoja de Excel a continuación, haga clic derecho y asignar esta macro para que se ejecute cada vez).

Importar tabla Access

Los registros de la base de datos Access se han descargado correctamente en Excel. Abra el libro de Excel y compruebe los datos.

Nota: Asegúrese de que 'Microsoft ActiveX Data Objects Library' está activada desde la opción Herramientas – Referencias (número utilizar la última versión [6.1 a partir de este post]).

Importar tabla AccessPin



Estoy seguro de que trabajas con muchos datos de Excel, MS Access y VBA, por lo que me Fuertemente ¡Le recomendamos que se una a la siguiente Ultimate Excel VBA Userform con base de datos Access! ¡Es una inversión que vale la pena en ti mismo! ¡HAZLO AHORA!

Construya su propio programa del mundo real, aprenda VBA (macros) de Excel real, supere los límites de Excel con un proyecto completo.

Picture of Anson Antony
anson antonio
Anson es autor colaborador y fundador de www.askeygeek.com. Aprender algo nuevo siempre ha sido su pasión, ASKEYGEEK.com es el resultado de su pasión por la tecnología y los negocios. Tiene una década de experiencia versátil en subcontratación de procesos comerciales, finanzas y contabilidad, tecnología de la información, excelencia operativa e inteligencia empresarial. Durante su mandato, trabajó para organizaciones como Genpact, Hewlett Packard, M*Modal y Capgemini en diversos roles y responsabilidades. Fuera de los negocios y la tecnología, es un cinéfilo que pasa horas juntos viendo y aprendiendo cine, ¡y también es un cineasta!

8 Responses

  1. Hola , quería comprobar si guardo mi Access DB en la unidad compartida y distribuir esta macro Excel en mi organización, ¿funcionará? Quiero que mi macro Excel lea algunos valores de esta base de datos Access y luego actualice algunas variables al abrir Excel.

    También si Access no funciona, si puedo usar otro excel guardado en la organización de una unidad y acceder a él en lugar de DB. He intentado con el método de libro de trabajo abierto en mi macro para leer mi onedrive excel que se comparte a todos en mi empresa, pero no funcionó .

  2. Finalmente lo hice.

    estoy utilizando 2 variables (textbox1 como valor 'moneda, formato R$0.000,00' y textbox2 como 'fecha', formato mm/dd/aaaa)

    Código ↓

    '================================================== ===|
    '========================================== Kauê Vaz==|
    '================================================== ===|

    Opción explícita

    ' Haga clic en Herramientas, Referencias y seleccione
    ' Biblioteca Microsoft ActiveX Data Objects 2.0
    Sub getDataFromAccess(strValue, strDate)

    Dim DBFullName As String
    Dim Connect As String, Source As String
    Dim Connection As ADODB.Connection
    Dim Recordset As ADODB.Recordset
    Dim Col As Integer
    Dim mySQLVariable As String
    Dim mySQLVariable_1 As String
    Dim strSQL As String

    mySQLVariable = strValue 'Valor de textbox1 (Formato de moneda R$0.000,00)
    mySQLVariable_1 = strDate 'Valor de textbox2 (Formato de fecha mm/dd/aaaa)

    Código SQL
    strSQL = "SELECT * FROM tblBaseDeDatos DONDE "
    strSQL = strSQL & " [Valor] = '" & (mySQLVariable) & "' y "
    strSQL = strSQL & " [Fecha] = '" & (mySQLVariable_1) & "' "

    ' Base de datos, seleccione su acceso a la base de datos
    DBFullName = "C:\Users\Desktop\Databases\BD_PaynotProcess\bd_PaynotProcess.accdb"

    Abrir conexión
    Set Connection = Nueva conexión ADODB.Connection
    Connect = "Proveedor=Microsoft.ACE.OLEDB.12.0;"
    Connect = Connect & "Fuente de datos=" & DBFullName & ";"
    Connection.Open ConnectionString:=Conectar

    ' Crear RecordSet
    Set Recordset = Nuevo ADODB.Recordset
    Con Recordset

    ' Búsqueda de valores mediante código SQL variable strSQL
    Fuente = strSQL
    .FuenteAbierta:=Fuente, ConexiónActiva:=Conexión

    ' Importando columnas desde Base de Datos.
    For Col = 0 To Recordset.Fields.Count - 1
    Range("A5").Offset(0, Col).Value = Recordset.Fields(Col).Name
    Próximo

    ' Importando líneas desde Base de Datos.
    Range("A5").Offset(1, 0).CopyFromRecordset Recordset
    Terminar con

    Set Recordset = Nada
    Conexión.Cerrar
    Establecer conexión =

    ActiveSheet.Columns.AutoFit

    Subtítulo final

    Saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¡Felicidades!
Lo hiciste,
¡No cierres!

Acceso UberCreate Creator Pro
¡¡¡gratis!!!

Esta ventana emergente no se mostrará tú decides de nuevo!!!

7
Share to...