Saltar al contenido

Macro para obtener registro de varias tablas de access


jeladio

Recommended Posts

publicado

Estimados Amigos:

Una vez mas quisiera molestarlos con el siguiente caso: necesito obtener registros de varias tablas de Access e insertarlas en determinadas celdas de excel a paratir de un solo dato del registro, en el archivo adjunto tengo un ejemplo que si funciona, pero me parece muy improvisado, o como decimos en mi país "chapuceado" ya que lo que estoy haciendo es llamar varias macros por medio de un boton, lo que quisiera saber es si es posible abrir una sola vez la base de datos y luego recorrer e importar los datos de las diferentes tablas y luego cerrarla, para no hacer lo que yo tengo. ¿Es eso posible?

Saludos

cargar formulario.rar

cargar formulario.rar

publicado

Pues creo que va a ser esto:

Sub FiltradoConjunto()

Dim cn, rs As Object, strFile, strCon, strSQL As String


'Creamos conexión
strFile = ThisWorkbook.Path & "\datos.mdb"
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";"
Set cn = CreateObject("ADODB.Connection")


'Abrimos conexión
cn.Open strCon


'Creamos objeto recordset
Set rs = CreateObject("ADODB.Recordset")


'------ Ejecutamos consulta 1
Dato = Worksheets("Hoja1").Range("c5").Value
strSQL = "SELECT * FROM tabla" & " WHERE nombre" & "= '" & Dato & "'"


'Abrimos recordset
rs.Open strSQL, cn, 3, 3
With Worksheets("Hoja1")
.Range("c6") = rs.Fields!nombre
.Range("c7") = rs.Fields!direccion
.Range("c8") = rs.Fields!ciudad
.Range("c9") = rs.Fields!telefono
.Range("c10") = rs.Fields!edad
.Range("c11") = rs.Fields!cumpleaños
.Range("c12") = rs.Fields!Email
.Range("c13") = rs.Fields!puesto
End With
rs.Close 'Cerramos recordset


'------ Ejecutamos consulta 2
Dato = Worksheets("Hoja1").Range("a5").Value
strSQL = "SELECT * FROM otro" & " WHERE direccio" & "= '" & Dato & "'"


'Abrimos recordset
rs.Open strSQL, cn, 3, 3
With Worksheets("Hoja1")
.Range("A6") = rs.Fields!direccio
.Range("a7") = rs.Fields!ciudad
.Range("a8") = rs.Fields!pais
End With
rs.Close 'Cerramos recordset


'-----------------------------------------
'Cerramos conexión
cn.Close
End Sub


[/code]
publicado

SOLUCIONADO Macro para obtener registro de varias tablas de access

Estimado Macro Antonio: De todo corazon, ¡¡¡Muchas Gracias!!!

Saludos

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.