Dentro de VBA Acces existe una herramienta muy potente que nos puede ayudar mucho en nuestro trabajo se trata del RECORSET, con ella podemos hacer miles de cosas. Seleccionar datos de un sitio y colocarlos en formato de nuestra tabla, anexar datos en una tabla, crear una tabla de varias tablas, almacenar datos en variables registrados en tablas....
Sub CREAR_UN_RECORSET()
Dim Mi_Recorset As New ADODB.Recordset
Dim Conexion As New ADODB.Connection
Dim Instruccion As String
Dim DATO(4) As Variant
Set Conexion = CurrentProject.Connection
Instruccion = "Select *from [TablaOrigenDatos]"
Mi_Recorset.Open Instruccion, Conexion
Do Until Mi_Recorset.EOF
If Mi_Recorset!filaconsulta= "datoconsulta" Then
DATO(0) = Mi_Recorset!filaretorna
DATO(1) = Mi_Recorset!filaretorna
DATO(2) = Mi_Recorset!filaretorna
DATO(3) = Mi_Recorset!filaretorna
Debug.Print DATO(0) & " " & DATO(1) & " " & " " & DATO(2) _
& " " & DATO(3)
End If
Mi_Recorset.MoveNext
Loop
Mi_Recorset.Close
Conexion.Close
Set Conexion = Nothing
Set Mi_Recorset = Nothing
End Sub
Ahora vamos a hacer lo mismo pero en lugar de imprimir en venta de inmediato, los anexaremos a una tabla existente. Este recurso es muy útil cuando hemos importado un formulario desde Excel que viene desordenado y lo deseamos convertir en una tabla de Access para poder ir almacenando los datos de una forma ordenada y así poder acceder a ellos para gestionarlos.
Sub CREAR_UN_RECORSET()
Dim Mi_Recorset As New ADODB.Recordset
Dim Conexion As New ADODB.Connection
Dim Instruccion As String
Dim DATO(4) As Variant
Set Conexion = CurrentProject.Connection
Instruccion = "Select *from [TablaOrigenDatos]"
Mi_Recorset.Open Instruccion, Conexion
Do Until Mi_Recorset.EOF
If Mi_Recorset!filaconsulta= "datoconsulta" Then
DATO(0) = Mi_Recorset!filaretorna
DATO(1) = Mi_Recorset!siguientefilaretorna
DATO(2) = Mi_Recorset!siguientefilaretorna
DATO(3) = Mi_Recorset!siguientefilaretorna
End If
Mi_Recorset.MoveNext
Loop
Dim Mi_Consulta As String
Mi_Consulta ="Insert Into [TablaDestino] (filadestino1,filadestino2,filadestino3,filadestino4) values (' " & DATO(0) & " ' , ' " & DATO(1) & " ' , ' "& DATO(2) & " ' , ' "& DATO(3) & " ' , ' "
Mi_Recorset.Close
Conexion.Close
Set Conexion = Nothing
Set Mi_Recorset = Nothing
End Sub
Dim Mi_Recorset As New ADODB.Recordset
Dim Conexion As New ADODB.Connection
Dim Instruccion As String
Dim DATO(4) As Variant
Set Conexion = CurrentProject.Connection
Instruccion = "Select *from [TablaOrigenDatos]"
Mi_Recorset.Open Instruccion, Conexion
Do Until Mi_Recorset.EOF
If Mi_Recorset!filaconsulta= "datoconsulta" Then
DATO(0) = Mi_Recorset!filaretorna
DATO(1) = Mi_Recorset!siguientefilaretorna
DATO(2) = Mi_Recorset!siguientefilaretorna
DATO(3) = Mi_Recorset!siguientefilaretorna
End If
Mi_Recorset.MoveNext
Loop
Dim Mi_Consulta As String
Mi_Consulta ="Insert Into [TablaDestino] (filadestino1,filadestino2,filadestino3,filadestino4) values (' " & DATO(0) & " ' , ' " & DATO(1) & " ' , ' "& DATO(2) & " ' , ' "& DATO(3) & " ' , ' "
Mi_Recorset.Close
Conexion.Close
Set Conexion = Nothing
Set Mi_Recorset = Nothing
End Sub
No hay comentarios:
Publicar un comentario