Una de las tareas mas comunes dentro de un Sistema de Access, es precisamente la búsqueda de registros. Access nos ha ofrecido a través de su barra de herramientas al momento de diseñar un formularios, los botones de comando y de ahí poder seleccionar el comando que nos permite BUSCAR UN REGISTRO.
Sin embargo, en ciertas condiciones esta opción nos resulta un tanto precaria e insuficiente. Afortunadamente en Access también contamos con un abanico amplio de Macros donde podemos encontrar una interesante opcion para buscar registros, se trata de la Macro Encontrar Registro (Search for Record), con este macro vamos a poder localizar un registro mediante algunos parámetros personalizados y así hacer de nuestra búsqueda un tanto mas profesional.
La Macro Encontrar Registro en Access cuenta con los siguientes Argumentos:
Tipo de Objeto:
Aquí se especifica o selecciona el tipo de objeto de base de datos en el que se desea realizar la búsqueda de registro. Las opciones son: Tabla, Consulta, Formulario, Informe.
Nombre del Objeto:
Aqui se especifica o selecciona el objeto especifico que contiene el registro que se desea buscar. En lista desplegable se muestran todos los objetos de base de datos del tipo seleccionado para el argumento Tipo de objeto.
Registro:
Especifique el punto inicial y la dirección de la búsqueda.
VALOR | DESCRIPCIÓN |
Anterior | Permite buscar hacia atrás a partir de un registro actual |
Siguiente | Permite buscar hacia delante a partir de un registro actual |
Primero | Permite buscar hacia adelante a partir del primer registro. (valor por defecto) |
Ultimo | Permite Buscar hacia atrás a partir del ultimo registro. |
Condición WHERE:
Aqui se especifican los criterios de la busqueda, usando la misma sintaxis que para una clausula SQL WHERE, pero SIN la palabra "WHERE". ejemplo:
="[CLIENTES].[NOMBRE] ='" & [Variables temporales]![nomCliente] & "'"
Para crear un criterios que incluya un valor de un cuadro de texto en un formulario, cree una expresión que concatene la primera parte del criterio con el nombre del cuadro de texto que contenga el valor que se desea buscar.
Veamos el Siguiente Ejemplo:
En este formulario se puede apreciar los datos personales de un cliente en particular, en la parte de arriba encontramos una caja de texto, donde al escribir un nombre podemos localizar el primer registro coincidente con este NOMBRE, lo mismo podría ser un Código, Numero de Empleado, Clave de algún articulo, clave de Proveedor, etc.
Para este ejemplo ocupamos una Tabla de Clientes, con la siguiente configuracion:
La configuración de la Caja TextBox para buscar el Cliente y sus 2 botones Auxiliares, es la siguiente:
un TextBox, con el Nombre de: txtBuscarNombre
un Botón de Comando, con el Nombre de: cmdBuscarCliente
un Botón de Comando, con el Nombre de: cmdLimpiar
La Macro en el Evento Clic de cmdBuscarCliente es la siguiente:
Esta macro, lleva las siguiente Acciones:
- se declara una variable temporal que recoge el valor del control txtBuscarNombre
- Si el Valor de esa variable, es nulo entonces se muestra un mensaje de advertencia
- si el valor de esa variable NO es nulo, entonces se Inicia la Acción para Encontrar Registro, bajo los siguientes parámetros:
- Tipo de Objeto: sera "Formulario", ya que estamos haciendo la busqueda desde un formulario
- Nombre del Objeto: sera "FormularioClientes", ya que asi se llama el nuestro Formulario.
- Registro: sera "Primero", para que empiece a buscar desde el primer registro.
- Condicion WHERE: Aqui pondremos el siguiente criterio:
(Aquí es importante no omitir nada,, [CLIENTES].[NOMBRE] es el nombre de la tabla de CLIENTES y el campo NOMBRE] en donde se realizara la búsqueda que esta sea igual al valor de la variable temporal nomCliente)
La Macro en el Evento Clic de cmdLimpiar es la siguiente:
- Finalmente, ser quita la variable Temporal de la Memoria
La Macro en el Evento Clic de cmdLimpiar es la siguiente:
Aquí solo se pregunta si el Nulo el valor de la Caja txtBuscarNombre, si el valor NO es nulo entonces llevara a cabo la limpieza del control y posteriormente le dará el enfoque.
Ahora veamos este ejemplo en este Video
MUCHISIMAS GRACIAS POR COMPARTIR TU CONOCIMIENTO!! SIGUE ASI
ResponderBorrarMUY INTERESANTE, gracias
ResponderBorrarMuchas gracias por las ayudas, siga adelante y muchos éxitos
ResponderBorrarSIGO SUS TUTORIALES DESDE HACE POCO Y ME PARECEN MUY BUENAS SUS ENSEÑANZAS
ResponderBorrarSALUDOS
Me ha sido de gran utilidad tu exlicación ,muchas gracias Arturo
ResponderBorrarMuy interesante, gracias por compartir tu conocimiento con los demas profesor Arturo
ResponderBorrarAgradecido por el contenido me ha servido muchísimo
ResponderBorrarGracias
ResponderBorrarFelicidades x tu clara explicación. Sigue con ese interés de ayudarnos, mis respetos. Gracias..
ResponderBorrarUna pregunta, se podria configurar el boton para que realice busquedas en cualquier caja del formulario, me refiere si introduciendo en una palabra en la busqueda, realice esta busqueda en nombre, apellido, mail, telefono, ect...
ResponderBorrarGracias de antemano
Como se cargan datos en un listbox? parecen poner ListBox.RowSource = InstruccionSQL pero no se cargan los datos
ResponderBorrarYa pude, puse el origen de los datos de ese listbox como consulta, pero ahora como hacen para que el formulario quede "flotando", en su formulario para verlo modo diseno se le da click derecho y a los que creo yo me voy a inicio y ahi elijo el modo de vista, Saludos
ResponderBorrar