Encontrar Registros en Access usando Macros

Hazte fan!! Síguenos!!
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:  
="[CLIENTES].[NOMBRE] ='" & [Variables temporales]![nomCliente] & "'"

(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)
  • 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


12 comentarios:

  1. MUCHISIMAS GRACIAS POR COMPARTIR TU CONOCIMIENTO!! SIGUE ASI

    ResponderBorrar
  2. Muchas gracias por las ayudas, siga adelante y muchos éxitos

    ResponderBorrar
  3. SIGO SUS TUTORIALES DESDE HACE POCO Y ME PARECEN MUY BUENAS SUS ENSEÑANZAS
    SALUDOS

    ResponderBorrar
  4. Me ha sido de gran utilidad tu exlicación ,muchas gracias Arturo

    ResponderBorrar
  5. Muy interesante, gracias por compartir tu conocimiento con los demas profesor Arturo

    ResponderBorrar
  6. Agradecido por el contenido me ha servido muchísimo

    ResponderBorrar
  7. Felicidades x tu clara explicación. Sigue con ese interés de ayudarnos, mis respetos. Gracias..

    ResponderBorrar
  8. Una 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...

    Gracias de antemano

    ResponderBorrar
  9. Como se cargan datos en un listbox? parecen poner ListBox.RowSource = InstruccionSQL pero no se cargan los datos

    ResponderBorrar
  10. Ya 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

Entradas populares