Cómo acceder a los resultados de consultas de VBA

Saber cómo leer los resultados de una consulta de Microsoft Access puede ayudarlo a hacer que su aplicación de Access sea más dinámica. Access es parte de la suite de Microsoft Office y se usa para crear bases de datos relacionales. Visual Basic para aplicaciones (VBA) se puede usar en Access para crear aplicaciones de Windows y recuperar datos de bases de datos. Una consulta se crea utilizando instrucciones de lenguaje de consulta estructurado (SQL) para solicitar información de una base de datos.

Paso 1

Inicie Microsoft Office Access 2007 y seleccione "Base de datos en blanco", luego haga clic en "Crear". Haga clic en "Herramientas de base de datos" y seleccione "Visual Basic". Haga clic en el campo "Insertar" y seleccione "Módulo".

Escriba "Private sub readQueryResults" y presione "Enter" para crear una nueva subrutina.

Paso 2

Escriba lo siguiente para declarar las variables que usará para leer los resultados de la consulta:

Dim RecordSt As Recordset Dim dBase As Database Dim stringSQL As String Dim rCnt As Integer

Paso 3

Escriba lo siguiente para crear la tabla "CityTbl":

stringSQL ="CREATE TABLE CityTbl (Ciudad TEXTO (25), Estado TEXTO (25));" DoCmd.RunSQL (cadena SQL)

Paso 4

Escriba lo siguiente para agregar dos nuevos registros a su tabla "CityTbl":

stringSQL ="INSERTAR EN CityTbl ([Ciudad], [Estado]) " stringSQL =stringSQL &"VALORES ('Fort Worth', 'Texas');" DoCmd.SetWarnings Falso DoCmd.RunSQL (stringSQL)

stringSQL ="INSERTAR EN CityTbl ([Ciudad], [Estado] ) " stringSQL =stringSQL &"VALUES ('Dallas', 'Texas');" DoCmd.SetWarnings Falso DoCmd.RunSQL (stringSQL)

Paso 5

Escriba lo siguiente para definir su consulta y abrir su Recordset:

stringSQL ="SELECCIONE CityTbl.* FROM CityTbl;" Establecer RecordSt =dBase.OpenRecordset(stringSQL)

Paso 6

Escriba lo siguiente para crear un "For Loop" y mostrar los resultados de su consulta a través de un cuadro de mensaje:

RecordSt.MoveFirst For rCnt =0 To RecordSt.RecordCount MsgBox (RecordSt.Fields("City").Value &", " &RecordSt.Fields("State").Value) RecordSt.MoveNext Next rCnt

Presiona "F5" para ejecutar la subrutina.