jueves, 9 de septiembre de 2010

LISTA DE ACCIONES VIII

AplicarFiltro
La acción AplicarFiltro se puede utilizar para aplicar un filtro (filtro: conjunto de criterios aplicados a los datos con el fin de mostrar un subconjunto de dichos datos u ordenarlos. En Access, puede utilizar técnicas de filtro, como Filtro por selección y Filtro por formulario, para filtrar los datos.), una consulta (consulta: pregunta sobre los datos almacenados en las tablas o solicitud para llevar a cabo una acción en los datos. Una consulta puede unir datos de varias tablas para servir como origen de datos de un formulario, informe o página de acceso a datos.) o una cláusula WHERE de SQL (cláusula WHERE: parte de una instrucción SQL que especifica qué registros se deben recuperar.) a una tabla (tabla: objeto de base de datos que almacena datos en registros (filas) y campos (columnas). Los datos suelen ser sobre una categoría concreta de cosas, como empleados o pedidos.), a un formulario (formulario: objeto de base de datos de Access en el que se colocan controles para realizar acciones o para especificar, mostrar y editar datos en los campos.) o a un informe (informe: objeto de base de datos de Access que imprime información a la que se ha dado formato y se ha organizado de acuerdo con sus especificaciones. Ejemplos de informes: resúmenes de ventas, listines telefónicos y etiquetas postales.) para restringir u ordenar los registros de la tabla, o los registros de la tabla o la consulta subyacente del formulario o el informe. En el caso de los informes, esta acción sólo se puede usar en una macro (macro: acción o conjunto de acciones utilizados para automatizar tareas.) especificada por la propiedad del evento OnOpen del informe.
 Nota    Esta acción se puede utilizar para aplicar una cláusula WHERE de SQL sólo cuando se aplica un filtro de servidor. Un filtro de servidor no se puede aplicar al origen de registros de un procedimiento almacenado.
Nombre del filtro
Nombre de un filtro o una consulta que restringe u ordena los registros de la tabla, el formulario o el informe. Puedes escribir el nombre de una consulta existente o de un filtro guardado como consulta en el cuadro Nombre del filtro, en la sección Argumentos de acción del panel Generador de macros.
 Nota    Cuando se usa esta acción para aplicar un filtro de servidor (Filtro de servidor por formulario: técnica que utiliza una versión del formulario o de la hoja de datos activa con campos vacíos en los que se pueden escribir los valores que deban contener los registros filtrados. El servidor filtra los datos antes de que se recuperen de la base de datos.), el argumento Nombre del filtro debe estar en blanco.
Condición WHERE
Cláusula WHERE de SQL válida (sin la palabra WHERE) o expresión (expresión: cualquier combinación de operadores matemáticos o lógicos, constantes, funciones y nombres de campos, controles y propiedades que evalúa a un solo valor. Las expresiones puede realizar cálculos, manipular caracteres o probar datos.) que restringe los registros de la tabla, el formulario o el informe.
 Nota    En una expresión del argumento Condición WHERE, la parte izquierda normalmente contiene un nombre de campo de la tabla o la consulta subyacente del formulario o el informe. La parte derecha de la expresión suele contener los criterios (criterios: condiciones que se especifican para limitar los registros que se incluyen en el conjunto de resultados de una consulta o un filtro.) que se desean aplicar a este campo para restringir u ordenar los registros. Por ejemplo, los criterios pueden ser el nombre de un control de otro formulario que contiene el valor con el que se desea que coincidan los registros del primer formulario. El nombre del control debe ser completo, por ejemplo:
Formularios!nombredeformulario!nombrecontrol
Los nombres de campos deben especificarse entre comillas dobles y los literales de cadena entre comillas simples.
El argumento Condición WHERE puede tener como máximo 255 caracteres. Si necesitamos escribir una cláusula WHERE de SQL más larga, utilizar el método ApplyFilter del objeto DoCmd en un módulo de Visual Basic para Aplicaciones (VBA). En VBA, se pueden especificar instrucciones de cláusula WHERE de SQL de hasta 32.768 caracteres.


Nota    Se puede utilizar el argumento Nombre del filtro si ya hemos definido un filtro que proporciona los datos correctos. Se puede usar el argumento Condición WHERE para especificar directamente los criterios de restricción. Si utilizamos ambos argumentos, Microsoft Office Access 2007 aplica la cláusula WHERE a los resultados del filtro. Debemos utilizar uno o ambos argumentos.
Comentarios
Podemos aplicar un filtro o una consulta a un formulario en la vista Formulario (vista Formulario: ventana que muestra un formulario para mostrar o aceptar datos. La vista Formulario es el medio principal para agregar y modificar datos a tablas. También se puede cambiar el diseño de un formulario en esta vista.) o en la vista Hoja de datos (vista Hoja de datos: ventana que muestra datos de una tabla, formulario, consulta, vista o procedimiento almacenado con formato de filas y columnas. En la vista Hoja de datos, puede editar campos, buscar y agregar o eliminar datos.).
El filtro y la condición WHERE aplicados se convertirán en los valores de la propiedad Filtro o FiltroDeServidor del formulario o del informe.
Para las tablas y los formularios, esta acción es similar a hacer clic en Aplicar filtro u ordenar o Aplicar filtro de servidor en el menú Registros. El comando de menú aplica el filtro que se haya creado más recientemente a la tabla o al formulario, mientras que la acción AplicarFiltro aplica un filtro o una consulta especificados.
En una base de datos de Access (base de datos: colección de datos relacionados con un fin o tema concreto. Dentro de una base de datos, la información sobre una entidad en particular, como un empleado o un pedido, se categoriza en tablas, registros y campos.), si se elige Filtro en el menú Registros y, a continuación, hacemos clic en Filtro u orden avanzado después de ejecutar la acción AplicarFiltro, en la ventana Filtro u orden avanzado (ventana Filtro y orden avanzado: ventana en la que puede crear un filtro desde cero. Puede escribir expresiones de un criterio en la cuadrícula de diseño del filtro para limitar los registros de la hoja de datos o formulario abierto a un subconjunto de registros que coincidan con ese criterio.) se muestran los criterios de filtro seleccionados con esta acción.
Para quitar un filtro y mostrar todos los registros de una tabla o de un formulario en una base de datos de Office Access 2007, se puede utilizar la acción MostrarTodosRegistros o el comando Quitar filtro u orden del menú Registros. Para quitar un filtro en un proyecto de Access (proyecto de Microsoft Access: archivo de Access que se conecta con una base de datos de Microsoft SQL Server y se utiliza para crear aplicaciones cliente-servidor. Un archivo de proyecto no contiene datos ni objetos basados en definiciones de datos, como, por ejemplo, tablas o vistas.) (.adp), podemos volver a la ventana Filtro del servidor por formulario (Filtro de servidor por formulario: técnica que utiliza una versión del formulario o de la hoja de datos activa con campos vacíos en los que se pueden escribir los valores que deban contener los registros filtrados. El servidor filtra los datos antes de que se recuperen de la base de datos.), quitar todos los criterios del filtro y, después, hacer clic en Aplicar filtro de servidor en el menú Registros de la barra de herramientas, o establecer la propiedad FiltroDeServidorPorFormulario en False (0).
Cuando se guarda una tabla o un formulario, Access guarda cualquier filtro que esté definido actualmente en ese objeto, pero no aplicará el filtro automáticamente la siguiente vez que se abra el objeto (aunque aplicará automáticamente cualquier orden aplicado al objeto antes de guardarlo). Si deseamos aplicar un filtro automáticamente la primera vez que se abra un formulario, especificar una macro que contenga la acción AplicarFiltro o un procedimiento de evento que contenga el método ApplyFilter del objeto DoCmd como valor de la propiedad del evento OnOpen del formulario. También se puede aplicar un filtro mediante las acciones AbrirFormulario AbrirInforme o sus métodos correspondientes. Para aplicar un filtro automáticamente la primera vez que se abre una tabla, se puede abrir la tabla con una macro que contenga la acción AbrirTabla, seguida inmediatamente de la acción AplicarFiltro.

Ejemplo

La macro siguiente contiene un conjunto de acciones, cada una de las cuales filtra los registros del formulario Lista de teléfonos de clientes. En el ejemplo, se muestra el uso de las acciones AplicarFiltro, MostrarTodosRegistros y IrAControl, así como el uso de condiciones para determinar qué botón de alternar de un grupo de opciones se ha seleccionado en el formulario. Cada fila de acción está asociada a un botón de alternar que selecciona el conjunto de registros, empezando por A, B, C, etc. o todos los registros. Esta macro debe asociarse al evento AfterUpdate del grupo de opciones CompanyNameFilter.
Condición
Acción
Argumentos: valor
Comentario
[CompanyNameFilters]=1
AplicarFiltro
Condición WHERE: [NombreCompañía], como "[AÀÁÂÃÄ]*"
Filtro por nombres de compañía que empiecen por A, À, Á, Â, Ã o Ä.
[CompanyNameFilters]=2
AplicarFiltro
Condición WHERE: [NombreCompañía], como "B*"
Filtro por nombres de compañía que empiecen por B.
[CompanyNameFilters]=3
AplicarFiltro
Condición WHERE: [NombreCompañía], como "[CÇ]*"
Filtro por nombres de compañía que empiecen por C o Ç.
...Las filas de acción de la D a la Y tienen el mismo formato que las de la A a la C...
[CompanyNameFilters]=26
AplicarFiltro
Condición WHERE: [NombreCompañía], como "[ZÆØÅ]*"
Filtro por nombres de compañía que empiecen por Z, Æ, Ø o Å.
[CompanyNameFilters]=27
MostrarTodosRegistros
Muestra todos los registros.
[RecordsetClone].[RecordCount]>0
IrAControl
Nombre del control: NombreCompañía
Si se devuelven registros para la letra seleccionada, el enfoque se desplaza al control NombreCompañía.


No hay comentarios: