Tecnología

Inicio

Cómo crear un pase de acceso consulta de parámetros en VBA

Cómo crear un pase de acceso consulta de parámetros en VBA


Creación de consultas de parámetros con Microsoft Access VBA (Visual Basic para Aplicaciones) implica el uso de objetos predefinidos de acceso, incluidas las QueryDef y objetos de base. La cadena de consulta utilizado con estos objetos es el mismo que se utiliza al crear consultas de Access sin VBA (por ejemplo, "SELECT * FROM MyTable DONDE myfield = [user_entered_parameter]").

Instrucciones

1 El acceso abierto y crear una tabla de datos de la muestra utilizando las siguientes filas. Introduzca el texto de la primera fila como nombres de campos de la tabla.

libro, datesold, netsale
palabras que fomentaban, 12/1/2009, $ 5.03
palabras que fomentaban, 12/3/2009, $ 4,97
der meisterstringer 12/5/2009 $ 1.97
der meisterstringer 12/6/2009 $ 0.97

2 Guarde la tabla como "libros", a continuación, entrar en el IDE de Visual Basic (Entorno de desarrollo integrado) con la tecla "Alt-F11."

3 Haga clic en "Insertar", seguido de "módulo" en la barra de herramientas del IDE, a continuación, pegue el siguiente código en la ventana de código:

Public Sub param_q_select ()
Dim db Como DAO.Database
qd tenue Como DAO.QueryDef
Dim como secuencia sqry
Set db = CurrentDb
sqry = "SELECT * FROM libros DONDE libro como [Enter título del libro]"
Set qd = db.CreateQueryDef ( "qpSelect", sqry)
End Sub

4 Ejecutar la macro colocando el cursor en cualquier lugar dentro de este subprograma y pulsando la tecla "F5".

5 Volver a Access y cerrar la ventana de navegación de la izquierda si está abierto. Vuelva a abrir la ventana y observar el nuevo, consulta almacenada ( "qpSelect"). Haga doble clic en esta consulta para ejecutarlo, y el tipo

"pieles" en el indicador. Observe los resultados de la consulta: sólo las filas con "la promoción de las palabras" se muestran.

6 Volver al IDE con la tecla "Alt-F11", y ejecutar la macro utilizando las instrucciones del Paso 4. Observe el error que aparece en esta ocasión ( "objeto" qpSelect 'ya existe ").

7 Revisar el código para prevenir el error reemplazándolo con este código:

Public Sub param_q_select ()
Dim db Como DAO.Database
qd tenue Como DAO.QueryDef
Dim como secuencia sqry
Set db = CurrentDb

On Error GoTo skip_delete

db.QueryDefs.Delete "qpSelect"
skip_delete:
sqry = "SELECT * FROM libros DONDE libro como [Enter título del libro]"
Set qd = db.CreateQueryDef ( "qpSelect", sqry)
End Sub

8 Vuelva a ejecutar el código utilizando las instrucciones del Paso 4. Observe que no hay error de este tiempo.

9 Revisar la macro para que el usuario de su programa puede elegir el campo para crear una consulta de parámetros a partir de: copiar la subrutina param_q_select completa y pegarla en un área en blanco de la ventana de código. Cambiar el nombre de este duplicado como param_q_choose_field

10 Reemplace el código existente del programa param_q_choose_field, entre los estados de error "en ..." y "End Sub". Escribir o pegar este código en su lugar:

Dim sf
sf = InputBox ( "Introduce el nombre de campo")
sqry = "SELECT * FROM libros DONDE" & sf & "como [Enter" & sf & "]"
On Error GoTo skip_delete
db.QueryDefs.Delete "qpSelect"
skip_delete:
Set qd = db.CreateQueryDef ( "qpSelect", sqry)
End Sub

11 Vuelva a ejecutar la subrutina mediante las instrucciones de Paso 4, y escriba "netsale" cuando el "Introduce el nombre del campo" aparecerá el mensaje.

12 Ejecutar la consulta creado por la subrutina mediante las instrucciones de Paso 5. Sin embargo, entrar en "0" cuando se le solicite para el parámetro netsale. Pulse la tecla "Enter" y observe que sólo las filas cuyo campo "netsale" contiene una fueron devueltos "0".