Crear consultas de parámetro con Microsoft Access VBA (Visual Basic para Aplicaciones ) implica el uso de objetos predefinidos de acceso , incluyendo el QueryDef y objetos de base de datos . 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 mitabla DONDE micampo = [ user_entered_parameter ]" ) . Cosas que necesitará
Microsoft Access
Ver Más instrucciones
1
Open Access y crear una tabla de datos de la muestra con las siguientes filas . Introduce el texto de la primera fila como nombres de campo de la tabla . Para reservar en
, datesold , palabras netsalefurthering , 12/1/2009 , $ 5.03furthering palabras , 12/3/2009 , $ 4.97der meisterstringer , 12/5/2009 , $ 1.97der meisterstringer , 12/6/2009 , $ 0.97
2
Guarde la tabla como " libros", a continuación, entrar en el IDE de Visual Basic ( Integrated Development Environment) 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 código siguiente en la ventana de código :
Pública Sub param_q_select () Dim db Como DAO.DatabaseDim qd Como DAO.QueryDefDim sqry Como StringSet db = CurrentDbsqry = "select * FROM libros DONDE libro como [Enter título del libro ]" Set qd = db.CreateQueryDef ( " qpSelect " , sqry ) End Sub
4
Ejecute la macro colocando el cursor en cualquier lugar dentro de este subprograma y presionando "F5 ".
5
Volver al acceso y cierre la navegación ventana de la izquierda si está abierto . Vuelva a abrir la ventana y observe la nueva consulta almacenada ( " qpSelect ") . Haga doble clic en esta consulta para ejecutarlo, y escribe " * piel * " en el indicador. Observe los resultados de la consulta : sólo las filas con "palabras Fomento " se muestran
6
Volver al IDE con la tecla " Alt -F11 ", y ejecutar la macro siguiendo las instrucciones del Paso 4 . . Observe el error que aparece en esta ocasión ( "Object " qpSelect 'ya existe ")
7
Revisar el código para prevenir el error reemplazándolo con este código: .
Pública Sub param_q_select () Dim db Como DAO.DatabaseDim qd Como DAO.QueryDefDim sqry Como StringSet db = CurrentDbOn Error GoTo skip_deletedb.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
volver a ejecutar el código con instrucciones paso de 4 . Tenga en cuenta que no hay ningún error esta vez
9
Revisar la macro para que el usuario del programa puede elegir qué campo para crear una consulta de parámetros a partir de: . Copiar la subrutina param_q_select completo y pegarlo en un área en blanco de la ventana de código . Cambie el nombre duplicado como param_q_choose_field
10
Reemplace el código del programa existente de param_q_choose_field , entre " el error ..." y declaraciones "End Sub " . Escriba o pegue este código en su lugar:
Dim sfsf = InputBox ( " Escriba el nombre de campo ") sqry = "select * FROM libros WHERE" y sf & " como [ ENTER" y sf y "] " On Error GoTo skip_deletedb.QueryDefs.Delete " qpSelect " skip_delete : Set qd = db.CreateQueryDef ( " qpSelect " , sqry ) End Sub
11
Re - ejecutar la subrutina usando las instrucciones del Paso 4 y tipo " netsale " cuando el "Enter campo de nombre " aparece pronto .
12
ejecutar la consulta creado por la subrutina usando las instrucciones del Paso 5 . Sin embargo , introduzca "* 0 * " cuando se le solicite para el parámetro netsale . Pulse el botón " Enter" y reconocen que sólo las filas cuyo campo " netsale " contiene un "0 " se devolvieron .