Criterios de Consultas

17
Un criterio de consulta es una regla para identificar los registros que se desea incluir en el resultado de una consulta. No todas las consultas deben incluir criterios, pero si no le interesa ver todos los registros que están almacenados en el origen de registros subyacente, deberá agregar criterios a una consulta cuando la diseñe. Este tema contiene varios ejemplos de criterios de consulta. En el tema, se supone que ya sabe diseñar consultas de selección sencillas. Introducción a los criterios de consulta Un criterio es similar a una fórmula (es una cadena que puede consistir en referencias de campos, operadores y constantes). Los criterios de consulta también se conocen como expresiones en Microsoft Office Access 2007. En las tablas siguientes, se muestran algunos ejemplos de criterios y se explica su funcionamiento. CRITERIOS DESCRIPCIÓN >25 y <50 Este criterio se aplica a campos Número, como Precio o UnidadesEnStock. El resultado incluye solamente aquellos registros en los que el campo Precio o UnidadesEnStock contiene un valor mayor que 25 y menor que 50. DifFecha("aaaa", [FechaNacimiento], Fecha()) > 30 Este criterio se aplica a campos Fecha/Hora, como FechaNacimiento. En el resultado de la consulta, sólo se incluyen los registros en los que el número de años entre la fecha de nacimiento de una persona y la fecha actual es mayor que 30. Es Nulo Este criterio se puede aplicar a cualquier tipo de campo para que se muestren los registros en los que el valor de campo sea nulo. Como ve, los criterios pueden ser muy distintos unos de otros, dependiendo del tipo de datos del campo en el que se apliquen y de los requisitos específicos en cada caso. Algunos criterios son sencillos y usan operadores básicos y constantes. Otros son complejos y usan funciones y operadores especiales, e incluyen referencias de campo. Este tema contiene varios criterios usados comúnmente, organizados por tipo de datos. Si los ejemplos que se presentan en este tema no se pueden aplicar a sus necesidades específicas, es posible que tenga que escribir sus propios criterios. Para ello, debe familiarizarse con la lista completa de funciones, operadores y caracteres especiales y con la sintaxis para expresiones para hacer referencia a campos y literales.. Aquí verá dónde y cómo se agregan los criterios. Para agregar un criterio a una consulta, debe abrirla en la vista Diseño. Después, identifique los campos para los que desea especificar criterios. Si el campo no está aún en la cuadrícula de diseño, agréguelo arrastrándolo desde la ventana de diseño de la consulta hasta la cuadrícula, o bien, haciendo doble clic en el campo (De este modo, se agrega automáticamente a la siguiente columna vacía de la cuadrícula.). Por último, escriba los criterios en la fila Criterios. Los criterios que especifique para los distintos campos en la fila Criterios se combinan mediante el operador Y. Dicho de otro modo, los criterios especificados en los campos Ciudad y FechaNacimiento se interpretan así:

Transcript of Criterios de Consultas

Page 1: Criterios de Consultas

Un criterio de consulta es una regla para identificar los registros que se desea incluir en el resultado de una consulta. No todas las consultas deben incluir criterios, pero si no le interesa ver todos los registros que están almacenados en el origen de registros subyacente, deberá agregar criterios a una consulta cuando la diseñe.

Este tema contiene varios ejemplos de criterios de consulta. En el tema, se supone que ya sabe diseñar consultas de selección sencillas.

Introducción a los criterios de consultaUn criterio es similar a una fórmula (es una cadena que puede consistir en referencias de campos, operadores y constantes). Los criterios de consulta también se conocen como expresiones en Microsoft Office Access 2007.

En las tablas siguientes, se muestran algunos ejemplos de criterios y se explica su funcionamiento.

CRITERIOS DESCRIPCIÓN

>25 y <50 Este criterio se aplica a campos Número, como Precio o UnidadesEnStock. El resultado incluye solamente aquellos registros en los que el campo Precio o UnidadesEnStock contiene un valor mayor que 25 y menor que 50.

DifFecha("aaaa", [FechaNacimiento], Fecha()) > 30

Este criterio se aplica a campos Fecha/Hora, como FechaNacimiento. En el resultado de la consulta, sólo se incluyen los registros en los que el número de años entre la fecha de nacimiento de una persona y la fecha actual es mayor que 30.

Es Nulo Este criterio se puede aplicar a cualquier tipo de campo para que se muestren los registros en los que el valor de campo sea nulo.

Como ve, los criterios pueden ser muy distintos unos de otros, dependiendo del tipo de datos del campo en el que se apliquen y de los requisitos específicos en cada caso. Algunos criterios son sencillos y usan operadores básicos y constantes. Otros son complejos y usan funciones y operadores especiales, e incluyen referencias de campo.

Este tema contiene varios criterios usados comúnmente, organizados por tipo de datos. Si los ejemplos que se presentan en este tema no se pueden aplicar a sus necesidades específicas, es posible que tenga que escribir sus propios criterios. Para ello, debe familiarizarse con la lista completa de funciones, operadores y caracteres especiales y con la sintaxis para expresiones para hacer referencia a campos y literales..

Aquí verá dónde y cómo se agregan los criterios. Para agregar un criterio a una consulta, debe abrirla en la vista Diseño. Después, identifique los campos para los que desea especificar criterios. Si el campo no está aún en la cuadrícula de diseño, agréguelo arrastrándolo desde la ventana de diseño de la consulta hasta la cuadrícula, o bien, haciendo doble clic en el campo (De este modo, se agrega automáticamente a la siguiente columna vacía de la cuadrícula.). Por último, escriba los criterios en la fila Criterios.

Los criterios que especifique para los distintos campos en la fila Criterios se combinan mediante el operador Y. Dicho de otro modo, los criterios especificados en los campos Ciudad y FechaNacimiento se interpretan así:

Ciudad = "Chicago" Y FechaNacimiento<AgregFecha("aaaa", -40, Fecha())

Page 2: Criterios de Consultas

 Los campos Ciudad y FechaNacimiento incluyen criterios.

 Sólo los registros cuyo valor para el campo Ciudad sea Chicago se ajustarán al criterio.

 Sólo los registros que tengan como mínimo 40 años de antigüedad se ajustarán al criterio.

 Sólo los registros que cumplan los dos criterios se incluirán en los resultados.

¿Y si sólo desea que se cumpla una de estas condiciones? Es decir, si tiene criterios alternativos, ¿cómo lo expresa?

Si tiene criterios alternativos, o dos conjuntos de criterios independientes donde basta con que se cumpla un conjunto, use las filas Criterios y o en la cuadrícula de diseño.

 El criterio Ciudad se especifica en la fila Criterios.

 El criterio FechaNacimiento se especifica en la fila O.

Los criterios especificados en las filas Criterios y o se combinan utilizando el operador O, como se muestra a continuación:

Page 3: Criterios de Consultas

Ciudad = "Chicago" O FechaNacimiento<AgregFecha("aaaa", -40, Fecha())

Si necesita especificar más alternativas, use las filas situadas debajo de la fila o.

Antes de continuar con los ejemplos, tenga en cuenta lo siguiente:

Si los criterios son temporales o cambian a menudo, puede filtrar el resultado de la consulta en lugar de estar modificando continuamente los criterios. Un filtro es un criterio temporal que cambia el resultado de la consulta sin modificar el diseño de ésta.

Si los campos de criterios no cambian pero los valores que le interesan sí cambian con frecuencia, puede crear una consulta de parámetros. Una consulta de parámetros solicita al usuario valores de campos y luego utiliza estos valores para crear los criterios de consulta.

Criterios para campos Texto, Memo e HipervínculoLos ejemplos siguientes son para el campo PaísRegión de una consulta basada en una tabla donde se almacenan datos de contacto. El criterio se especifica en la fila Criterios del campo en la cuadrícula de diseño.

Un criterio que se especifique para un campo Hipervínculo se aplica, de forma predeterminada, a la parte de texto visible del valor del campo. Para especificar los criterios para la parte correspondiente al Localizador uniforme de recursos (URL) del valor, use la expresión ParteDeHipervínculo. La sintaxis de esta expresión es la siguiente: ParteDeHipervínculo([Tabla1].[Campo1],1) = "http://www.microsoft.com/spain", donde Tabla1 es el nombre de la tabla que contiene el campo de hipervínculo, Campo1 es el campo de hipervínculo y http://www.microsoft.com/spain es la dirección URL con la que se desea coincidir.

PARA INCLUIR REGISTROS QUE...

USE ESTE CRITERIO

RESULTADO DE LA CONSULTA

Coincidan exactamente con un valor, como China

"China" Devuelve los registros en los que el campo PaísRegión tiene el valor China.

No coincidan con un valor, como México

No "México" Devuelve los registros en los que el campo PaísRegión tiene un valor distinto de México.

Empiecen por la cadena especificada, como U

Como U* Devuelve los registros correspondientes a todos los países o regiones cuyos nombres empiezan por "U", como Uruguay, Uganda, etc.  NOTA    Cuando se utiliza en una expresión, el asterisco (*) representa cualquier cadena de caracteres (también se le denomina "carácter comodín").

No empiecen por la cadena especificada, como U

No como U* Devuelve los registros correspondientes a todos los países o regiones cuyos nombres empiezan por un carácter distinto de "U".

Contengan la cadena especificada, como Corea

Como "*Corea*" Devuelve los registros correspondientes a todos los países o regiones que contienen la cadena "Corea".

Page 4: Criterios de Consultas

No contengan la cadena especificada, como Corea

No como "*Corea*" Devuelve los registros correspondientes a todos los países o regiones que no contienen la cadena "Corea".

Acaben con la cadena especificada, como "ina"

Como "*ina" Devuelve los registros correspondientes a todos los países o regiones cuyos nombres acaban con "ina" como China y Argentina.

No acaben con la cadena especificada, como "ina"

No como "*ina" Devuelve los registros correspondientes a todos los países o regiones cuyos nombres no acaban con "ina", como China y Argentina.

Contengan valores nulos (o que falten)

Es Nulo Devuelve los registros en los que no hay ningún valor en el campo.

No contengan valores nulos No es Nulo Devuelve los registros en los que no falta el valor del campo.Contengan cadenas de longitud cero

"" (un par de comillas) Devuelve los registros en los que el campo tiene un valor en blanco (pero no nulo). Por ejemplo, los registros de ventas realizada a otro departamento podrían contener un valor en blanco en el campo PaísRegión.

No contengan cadenas de longitud cero

No "" Devuelve los registros en los que el campo PaísRegión no tiene un valor en blanco.

Contengan valores nulos o cadenas de longitud cero.

"" O Es Nulo Devuelve los registros donde no hay ningún valor en el campo, o bien, el campo tiene un valor en blanco.

Ni vacío ni en blanco No es Nulo Y Sin "" Devuelve los registros en los que el campo PaísRegión tiene un valor no en blanco y no nulo.

Vayan a continuación de un valor, como México, si se ordenan alfabéticamente

>= "México" Devuelve los registros de todos los países o regiones a partir de México y posteriores por orden alfabético.

Estén incluidos en un intervalo específico, como de la A hasta la D

Como "[A-D]*" Devuelve los registros correspondientes a los países o regiones cuyos nombres empiezan por las letras "A" a la "D".

Coincidan con uno de dos valores, tales como Estados Unidos o Reino Unido

"Estados Unidos" O "Reino Unido"

Devuelve los registros correspondientes a Estados Unidos y Reino Unido.

Contengan uno de los valores de una lista

En("Francia", "China", "Alemania", "Japón")

Devuelve los registros correspondientes a todos los países o regiones especificados en la lista.

Contengan ciertos caracteres en una posición específica en el valor del campo

Der([PaísRegión], 1) = "y" Devuelve los registros correspondientes a todos los países o regiones cuyo nombre acaba con la letra "y".

Satisfagan requisitos de longitud

Longitud([PaísRegión]) > 10

Devuelve los registros correspondientes a los países o regiones cuyo nombre tiene más de 10 caracteres.

Coincidan con un modelo específico

Como "Chi??" Devuelve los registros correspondientes a los países o regiones cuyos nombres tienen cinco caracteres de longitud y los tres primeros caracteres son "Chi", como China y Chile. NOTA    Los caracteres ? y _, cuando se usan en una expresión, representan un solo carácter (también se les denomina "caracteres comodín"). El carácter _ no se puede usar en la misma expresión junto con el carácter ? ni con el carácter comodín *. El carácter comodín _ se puede usar en una expresión que también contiene el carácter comodín %.

Criterios para campos Número, Moneda y AutonuméricoLos ejemplos siguientes son para el campo PrecioUnidad de una consulta basada en una tabla donde se almacena información de productos. El criterio se especifica en la fila Criterios del campo en la cuadrícula de diseño de la consulta.

Page 5: Criterios de Consultas

PARA INCLUIR REGISTROS QUE...

USE ESTE CRITERIO

RESULTADO DE LA CONSULTA

Coincidan exactamente con un valor, como 100

100 Devuelve los registros en los que el precio por unidad del producto es 100 $.

No coincidan con un valor, como 1000

No 1000 Devuelve los registros en los que el precio por unidad del producto no es 1000 $.

Contengan un valor menor que otro valor, como 100

< 100<= 100

Devuelve los registros en los que el precio por unidad es menor que 100 $ (<100). La segunda expresión (<=100) muestra los registros en los que el precio por unidad es menor o igual que 100 $.

Contengan un valor mayor que otro valor, como 99,99

>99,99>=99,99

Devuelve los registros en los que el precio por unidad es mayor que 99,99 $ (>99,99). La segunda expresión muestra los registros en los que el precio por unidad es mayor o igual que 99,99 $.

Contengan uno de entre dos valores, como 20 ó 25

20 o 25 Devuelve los registros en los que el precio por unidad es 20 $ ó 25 $.

Contengan un valor que esté incluido en un intervalo

>49,99 Y <99,99O bien,Entre 50 Y 100

Devuelve los registros en los que el precio por unidad está entre (pero sin incluir) 49,99 $ y 99,99 $.

Contengan un valor que esté fuera de un intervalo

<50 O >100 Devuelve los registros en los que el precio por unidad no está entre 50 $ y 100 $.

Contengan uno entre varios valores

En(20, 25, 30) Devuelve los registros en los que el precio por unidad es 20 $, 25 $ ó 30 $.

Contengan un valor que acabe con los dígitos especificados

Como "*4,99" Devuelve los registros en los que el precio por unidad acaba con "4,99", como 4,99 $, 14,99 $, 24,99 $, etc. NOTA    Los caracteres * y %, cuando se usan en una expresión, representan cualquier número de caracteres, que también se denominan "caracteres comodín". El carácter % no se puede usar en la misma expresión junto con el carácter * ni con el carácter comodín ?. El carácter comodín % se puede usar en una expresión que también contiene el carácter comodín _.

Page 6: Criterios de Consultas

Contengan valores nulos (o que falten)

Es Nulo Devuelve los registros en los que no se ha especificado ningún valor en el campo PrecioUnidad.

Contengan valores no nulos

No es Nulo Devuelve los registros en los que no falta el valor del campo PrecioUnidad.

Criterios para campos Fecha/HoraLos ejemplos siguientes son para el campo FechaPedido de una consulta basada en una tabla donde se almacena información de pedidos. El criterio se especifica en la fila Criterios del campo en la cuadrícula de diseño de la consulta.

PARA INCLUIR REGISTROS QUE...

USE ESTE CRITERIO RESULTADO DE LA CONSULTA

Coincidan exactamente con un valor, como 2/2/2006

#2/2/2006# Devuelve los registros de las transacciones que tuvieron lugar el 2 de febrero de 2006. No olvide rodear los valores de fechas con el carácter #, para que Access pueda distinguir entre fechas y cadenas de texto.

No coincidan con un valor, como 2/2/2006

No #2/2/2006# Devuelve los registros de las transacciones que tuvieron lugar en una fecha distinta al 3 de febrero de 2006.

Contengan valores anteriores a una fecha determinada, como el 2/2/2006

< #2/2/2006# Devuelve los registros de las transacciones que tuvieron lugar antes del 2 de febrero de 2006. Para ver las transacciones que tuvieron lugar en esa fecha o antes, use el operador <= en lugar de <.

Contengan valores posteriores a una fecha determinada, como el 2/2/2006

> #2/2/2006# Devuelve los registros de las transacciones que tuvieron lugar después del 2 de febrero de 2006. Para ver las transacciones que tuvieron lugar en esa fecha o después, use el operador >= en lugar de >.

Contengan valores que estén dentro de un intervalo de fechas

>#2/2/2006# Y <#4/2/2006# Devuelve los registros de las transacciones que tuvieron lugar entre el 2 de febrero de 2006 y el 4 de febrero de 2006. También puede usar el operador Entre para filtrar según un intervalo de valores. Por

Page 7: Criterios de Consultas

ejemplo, Entre #2/2/2006# Y #4/2/2006# es lo mismo que >#2/2/2006# Y <#2/4/2006#.

Contengan valores que estén fuera de un intervalo

<#2/2/2006# O >#4/2/2006# Devuelve los registros de las transacciones que tuvieron lugar antes del 2 de febrero de 2006 o después del 4 de febrero de 2006.

Contengan uno de dos valores, como 2/2/2006 o 3/2/2006

#2/2/2006# O #3/2/2006# Devuelve los registros de las transacciones que tuvieron lugar el 2 de febrero de 2006 o el 3 de febrero de 2006.

Contengan uno entre varios valores

En (#1/2/2006#, #1/3/2006#, #1/4/2006#) Devuelve los registros de las transacciones que tuvieron lugar el 1 de febrero de 2006, el 1 de marzo de 2006 o el 1 de abril de 2006.

Contengan una fecha que sea de un mes específico (independientemente del año), como diciembre

ParcFecha("m", [FechaVenta]) = 12 Devuelve los registros de las transacciones que tuvieron lugar en diciembre de cualquier año.

Contengan una fecha que sea de un trimestre específico (independientemente del año), como el primer trimestre

ParcFecha("t", [FechaVenta]) = 1 Devuelve los registros de las transacciones que tuvieron lugar en el primer trimestre de cualquier año.

Contengan la fecha en curso Fecha() Devuelve los registros de las transacciones que tuvieron lugar en la fecha en curso. Si hoy es el 2/2/2006, verá los registros en los que el campo FechaPedido tiene el valor 2 de febrero de 2006.

Contengan la fecha de ayer Fecha()-1 Devuelve los registros de las transacciones que tuvieron lugar en el día anterior a la fecha en curso. Si hoy es el 2/2/2006, verá los registros correspondientes al 1 de febrero de 2006.

Contengan la fecha de mañana Fecha() + 1 Devuelve los registros de las transacciones que tendrán lugar en el día posterior a la fecha en curso. Si hoy es el 2/2/2006, verá los registros correspondientes al 3 de febrero de 2006.

Contengan fechas que sean de la semana en curso

ParcFecha("ss", [FechaVenta]) = ParcFecha("ss", Fecha()) Y Año( [FechaVenta]) = Año(Fecha())

Devuelve los registros de las transacciones que tuvieron lugar durante la semana en curso. Una semana empieza en domingo y termina en sábado.

Contengan fechas que sean de la semana anterior

Año([FechaVenta])* 53 + ParcFecha("ss", [FechaVenta]) = Año(Fecha())* 53 + ParcFecha("ss", Fecha()) - 1

Devuelve los registros de las transacciones que tuvieron lugar durante la semana pasada. Una semana empieza en domingo y termina en sábado.

Contengan fechas que sean de la semana próxima

Año([FechaVenta])* 53+ParcFecha("ss", [FechaVenta]) = Año(Fecha())* 53+ParcFecha("ss", Fecha()) + 1

Devuelve los registros de las transacciones que tendrán lugar la semana próxima. Una semana empieza en domingo y termina en sábado.

Contengan fechas que sean de los 7 últimos días

Entre Fecha() Y Fecha()-6 Devuelve los registros de las transacciones que tuvieron lugar durante los 7 últimos días. Si hoy es el 2/2/2006, verá los registros correspondientes al período del 24 de enero de 2006 al 2 de febrero de 2006.

Contengan una fecha que sea del mes en curso

Año([FechaVenta]) = Año(Ahora()) Y Mes([FechaVenta]) = Mes(Ahora())

Devuelve los registros correspondientes al mes en curso. Si hoy es el 2/2/2006, verá los registros correspondientes a febrero de 2006.

Contengan una fecha que sea del mes anterior

Año([FechaVenta])* 12 + ParcFecha("m", [FechaVenta]) = Año(Fecha())* 12 + ParcFecha("m", Fecha()) - 1

Devuelve los registros correspondientes al mes pasado. Si hoy es el 2/2/2006, verá los registros correspondientes a enero de 2006.

Contengan una fecha que sea del mes próximo

Año([FechaVenta])* 12 + ParcFecha("m", [FechaVenta]) = Año(Fecha())* 12 + ParcFecha("m", Fecha()) + 1

Devuelve los registros correspondientes al mes próximo. Si hoy es el 2/2/2006, verá los registros correspondientes a marzo de 2006.

Contengan fechas que sean de los 30 ó 31 últimos días

Entre Fecha( ) Y AgregFecha("M", -1, Fecha( )) Los registros de ventas de un período de un mes. Si hoy es el 2/2/2006, verá los registros correspondientes al período del 2 de enero de 2006 al 2 de febrero de 2006.

Contengan una fecha que sea del trimestre en curso

Año([FechaVenta]) = Año(Ahora()) Y ParcFecha("t", Fecha()) = ParcFecha("t", Ahora())

Devuelve los registros correspondientes al trimestre en curso. Si hoy es el 2/2/2006, verá los registros correspondientes al primer

Page 8: Criterios de Consultas

trimestre de 2006.Contengan una fecha que sea del trimestre anterior

Año([FechaVenta])*4+ParcFecha("t",[FechaVenta]) = Año(Fecha())*4+ParcFecha("t",Fecha())- 1

Devuelve los registros correspondientes al trimestre anterior. Si hoy es el 2/2/2006, verá los registros correspondientes al último trimestre de 2005.

Contengan una fecha que sea del próximo trimestre

Año([FechaVenta])*4+ParcFecha("t",[FechaVenta]) = Año(Fecha())*4+ParcFecha("t",Fecha())+1

Devuelve los registros correspondientes al próximo trimestre. Si hoy es el 2/2/2006, verá los registros correspondientes al segundo trimestre de 2006.

Contengan fechas que sean del año en curso

Año([FechaVenta]) = Año(Fecha()) Devuelve los registros correspondientes al año en curso. Si hoy es el 2/2/2006, verá los registros correspondientes al año 2006.

Contengan una fecha que sea del año anterior

Año([FechaVenta]) = Año(Fecha()) - 1 Devuelve los registros de las transacciones que tuvieron lugar durante el año pasado. Si hoy es el 2/2/2006, verá los registros correspondientes al año 2005.

Contengan una fecha que sea del año próximo

Año([FechaVenta]) = Año(Fecha()) + 1 Devuelve los registros de las transacciones con fecha en el año próximo. Si hoy es el 2/2/2006, verá los registros correspondientes al año 2007.

Contengan una fecha que esté entre el 1 de enero y hoy (registros del año hasta la fecha)

Año([FechaVenta]) = Año(Fecha()) Y Mes([FechaVenta]) <= Mes(Fecha()) Y Día([FechaVenta]) <= Día (Fecha())

Devuelve los registros de las transacciones con fechas entre el 1 de enero del año en curso y la fecha actual. Si hoy es el 2/2/2006, verá los registros correspondientes al período del 1 de enero de 2006 al 2 de febrero de 2006.

Contengan una fecha ya pasada < Fecha() Devuelve los registros de las transacciones que tuvieron lugar antes de hoy.

Contengan una fecha del futuro > Fecha() Devuelve los registros de las transacciones que tendrán lugar después de hoy.

Filtren valores nulos (o que falten)

Es Nulo Devuelve los registros en los que falta la fecha de la transacción.

Filtren valores no nulos No es Nulo Devuelve los registros en los que se conoce la fecha de la transacción.

Criterios para otros camposCampos Sí/No    En la fila Criterios, escriba Sí para incluir los registros que tengan activada la casilla de verificación. Escriba No para incluir los registros que no tengan activada la casilla de verificación.

Datos adjuntos    En la fila Criterios, escriba Es Nulo para incluir los registros que no contengan datos adjuntos. Escriba No es Nulo para incluir los registros que sí contengan datos adjuntos.

Campos de búsqueda    Hay dos tipos de campos de búsqueda: los que buscan valores en un origen de datos existente (mediante una clave externa) y los que se basan en una lista de valores especificados al crearse el campo de búsqueda.

Los campos de búsqueda que se basan en una lista de valores especificados son del tipo de datos Texto, y los criterios válidos son los mismos que para otros campos de texto.

Los criterios que se pueden usar en un campo de búsqueda basado en valores de un origen de datos existente dependen del tipo de datos de la clave externa, y no del tipo de los datos que se buscan. Por ejemplo, suponga que tiene un campo de búsqueda que muestra los nombres de empleados, pero usa una clave externa de tipo de datos Número. Puesto que el campo almacena un número en lugar de texto, usted utilizará criterios válidos para números, es decir, >2.

Si no conoce el tipo de datos de la clave externa, puede examinar la tabla de origen en la vista Diseño para determinar los tipos de datos de los campos. Para ello:

1. Busque la tabla de origen en el panel de exploración.2. Abra la tabla en la vista Diseño. Para ello:

Haga clic en la tabla y, a continuación, presione CTRL+ENTRAR. Haga clic con el botón secundario del mouse (ratón) en la tabla y, a continuación, haga clic en Vista Diseño.

3. El tipo de datos de cada campo se muestra en la columna Tipo de datos de la cuadrícula de diseño de la tabla.

Page 9: Criterios de Consultas

Campos multivalor    Los datos de un campo multivalor se almacenan como filas en una tabla oculta que Office Access 2007 crea y rellena para representar el campo. En la vista Diseño de la consulta, se representa en el panel Lista de campos mediante un campo expansible. Para usar criterios para un campo multivalor, deberá suministrar criterios para una fila de la tabla oculta. Para hacerlo:

1. Cree una consulta que contenga el campo multivalor y ábrala en la vista Diseño.2. Expanda el campo multivalor haciendo clic en el signo más (+) situado junto al campo (si el campo ya está expandido, habrá un signo

menos (-)). Justo debajo del nombre del campo, verá un campo que representa un único valor del campo multivalor. Este campo tendrá el mismo nombre que el campo multivalor, con la cadena .Value agregada al final.

3. Arrastre el campo multivalor y su campo de valor único a columnas distintas en la cuadrícula de diseño. Si desea ver sólo el campo multivalor completo en los resultados, desactive la casilla de verificación Mostrar correspondiente al campo de valor único.

4. Escriba los criterios en la fila Criterios correspondiente al campo de valor único, utilizando criterios apropiados según cual sea el tipo de datos de los valores.

5. Cada valor del campo multivalor se puede evaluar individualmente mediante los criterios que especifique. Por ejemplo, puede tener un campo multivalor para almacenar una lista de números. Si especifica los criterios >5 Y <3, todos los registros donde haya al menos un valor mayor que 5 y un valor menor que 3 aparecerán en los resultados.

Page 10: Criterios de Consultas

Saque el máximo partido a sus consultas de Access

En este número veremos unos trucos sencillos para mejorar las consultas de selección de access incluyendo campos calculados, añadiendo etiquetas inteligentes y obteniendo resúmenes numéricos como la varianza o el promedio. también nos ocuparemos de generalizar las consultas y reutilizarlas mediante parámetros en consultas de selección, eliminación y actualización.

Cómo crear campos calculados en una consulta de selección

Las consultas de selección permiten obtener los registros de una tabla o tablas que cumplan con un criterio determinado. Por ejemplo, si tenemos una base de datos sobre medicamentos podríamos realizar una consulta que nos muestre todos los que tienen un precio superior a 3 euros. Supongamos que este precio es sin IVA y nos interesa obtener en la consulta el IVA de cada medicamento y el precio con IVA incluido. Observe que no es necesario modificar la tabla para añadir estos dos campos, puesto que pueden calcularse directamente del campo Precio y del porcentaje de IVA (el 4%).Para crear los campos calculados supondremos que la consulta de selección ya está diseñada (para más información consulte el artículo Access 2002 (III) del número 193 de PC World) y daremos los pasos siguientes:1. Acceda a la Vista Diseño de la consulta.2. En la vista diseño verá varias columnas que contienen el nombre de los campos a consultar. Sitúese en una columna vacía y contigua al último campo, pulse en la fila Campo y escriba IVA:[precio]*0,04. Con esto estamos creando un campo calculado llamado IVA que se obtiene multiplicando el campo Precio por el 4%.3. En la columna contigua cree el campo calculado Precio IVA incluido escribiendo Precio IVA incluido:[Precio]+[IVA] en la fila Campo.Si lo desea puede darles un formato apropiado, por ejemplo Moneda, pulsando con el botón derecho del ratón en el campo, seleccionando la opción Propiedades y escogiendo Moneda en la propiedad Formato.Ahora sólo queda probar la consulta pulsando el botón Ejecutar de la barra de herramientas.

Cómo añadir etiquetas inteligentes a una consulta de selección

Sigamos con el ejemplo de la base de datos de medicamentos y suponga una consulta de laboratorios que incluya el nombre del representante comercial. Resultaría muy práctico si al obtener los datos de la consulta se pudiera hacer un clic en un representante y enviarle directamente un correo electrónico, programar una reunión con él o ver todos sus datos. Todo esto es posible a condición de que los representantes estén almacenados como contactos en Microsoft Outlook y que, además, se asigne una etiqueta inteligente al campo en cuestión. Veamos cómo:1. Acceda a la Vista Diseño de su consulta.2. Pulse con el botón derecho del ratón en el campo que contiene el nombre del contacto, en el caso del ejemplo sería el nombre del representante, y elija la opción Propiedades.3. Pulse el botón Generar en la propiedad Etiquetas inteligentes.4. Marque la casilla correspondiente a Nombre de la persona y pulse Aceptar.

Page 11: Criterios de Consultas

Cuando ejecute la consulta y pase el puntero del ratón sobre cualquier representante saldrá una etiqueta inteligente que le permitirá hacer lo que comentábamos al inicio de este truco. Incluso le da la posibilidad de agregarlo directamente como contacto. Observe que, por defecto, Access también le ofrece crear etiquetas inteligentes en campos de tipo Fecha. Si lo hace, tendrá acceso desde la etiqueta a programar una reunión o visualizar el calendario en la fecha que muestre el campo.

Cómo obtener resúmenes numéricos en una consulta de selección

En ocasiones interesa obtener un resumen numérico de los datos en lugar

de una consulta detallada. Por ejemplo, resumir el total de ventas agrupadas por región o totalizar los salarios según la categoría laboral de los trabajadores. Como el supuesto que nos ocupa trabaja con medicamentos y estos están agrupados en familias (analgésicos, antiácidos, etc.) crearemos una consulta resumen que nos indique el número total de medicamentos que hay en cada familia, incluyendo su precio mínimo, máximo, medio y varianza.Para ello crearemos una consulta de selección en la que incluiremos solamente el campo por el que agrupamos (en este caso Familia) y los campos numéricos que hay que resumir (Precio). Añadiremos el campo a resumir tantas veces como funciones le queramos aplicar. En nuestro caso son: Cuenta, Mín, Máx, Promedio y Var; por tanto lo agregaremos cinco veces.En el diseño de la consulta, indicaremos que deseamos obtener un resumen de los datos seleccionando en el menú Ver » Totales. Al hacer esta operación veremos una nueva fila llamada Total. Sólo resta indicar qué tipo de total se efectuará en cada campo eligiéndolo en la lista desplegable Total. Para nuestro ejemplo seleccionaremos Agrupar por en el campo Familia y, en los cinco campos Precio, seleccionaremos las funciones mencionadas anteriormente. Al ejecutar la consulta, Access mostrará el resumen solicitado.Si la consulta necesita que algún campo cumpla un criterio, por ejemplo, que el laboratorio sea MedicamentumPanacea, agregue el campo en el diseño y seleccione Dónde en la lista desplegable Total de dicho campo. Ahora ya puede escribir el criterio en la fila Criterios.

Cómo utilizar consultas de selección con criterios parametrizados

Supongamos que nuestro objetivo es crear una consulta de selección con el nombre del medicamento, la cantidad pedida y la fecha del pedido, que muestre sólo los medicamentos con cantidad pedida inferior a treinta. Tras crear la consulta insertando los campos solicitados tendremos que teclear <30 en la fila Criterio del campo Cantidad. Y al ejecutar la consulta obtendremos el resultado pedido y guardaremos la consulta como Pedidos de medicamentos con cantidad inferior a 30.Pero ¿qué ocurre si nos interesa una cantidad diferente, por ejemplo, inferior a 100 o a 120? Esto nos obliga a modificar el criterio de la consulta y volver a ejecutarla. En lugar de esto, la idea es crear una consulta lo más general posible que permita consultar los medicamentos pedidos con cantidad inferior a un número cualquiera. Para conseguirlo, sustituiremos el criterio anterior por <[Cantidad pedida] donde [Cantidad pedida] es un parámetro cuyo valor nos preguntará Access cada vez que ejecutemos la consulta.

Page 12: Criterios de Consultas

La misma idea podemos aplicar con otros tipos de campos, por ejemplo, de Fecha. Para obtener los pedidos de medicamentos realizados entre el 1/12/2004 y el 31/12/2004 el criterio sería Entre #01/12/2004# Y #31/12/2004#. Pero si queremos generalizar la consulta para obtener los pedidos entre dos fechas cualesquiera entonces las sustituiremos por parámetros. El criterio sería Entre [Fecha inicial] y [Fecha final]. Igual que en el caso anterior, al ejecutar la consulta Access preguntará por el valor de los parámetros y podremos teclear las fechas que nos interesen en ese momento.

Cómo usar los parámetros con campos tipo Texto o Memo

Nuestra tabla Medicamentos dispone de un campo Memo llamado Indicaciones que describe para qué casos es apropiado el medicamento. Si pretendemos realizar una consulta de selección que muestre los medicamentos indicados para el dolor de cabeza y ponemos el criterio =”dolores de cabeza” sólo encontrará los medicamentos cuya única indicación sea exactamente esa y no encontraría medicamentos indicados para, por ejemplo, “Procesos que cursan con dolor leve o moderado. Dolores de cabeza, dentales, etc.”, aunque contengan la indicación del criterio.Para resolverlo utilizaremos un criterio que busque un texto dentro del campo utilizando la palabra reservada Como y el asterisco. El criterio apropiado sería éste Como “*dolores de cabeza*”.Si pretendemos generalizar la consulta para localizar los medicamentos con cualquier indicación entonces utilizaremos un parámetro en el criterio de la forma siguiente: Como “*” & [Teclee indicación] & “*”, siendo [Teclee indicación] el parámetro. Los asteriscos indican que el texto a buscar puede estar precedido o sucedido por otro texto cualquiera y el & se utiliza para concatenar textos.

Cómo usar consultas de actualización y eliminación parametrizadas

El uso de parámetros no se restringe únicamente a consultas de selección. Es posible aplicarlas a cualquier otro tipo de consultas como las de eliminación o actualización. Veamos un ejemplo para cada una.Empezaremos por crearnos una consulta de eliminación para borrar todos los pedidos con fecha inferior a una dada. La consulta tendrá como único campo la fecha del pedido y, tras seleccionar en el menú Consulta » Consulta de eliminación, nos aseguraremos de que, en la fila Eliminar, figura Dónde y teclearemos el criterio <[Teclee una fecha]. Al igual que en las consultas de selección, al ejecutar la consulta, Access preguntará por el parámetro. Tras teclearlo pedirá confirmación para eliminar los registros que cumplan con el criterio indicado.En la consulta de actualización nos interesa incrementar el precio de los medicamentos de un laboratorio en un porcentaje determinado. La consulta tendrá sólo dos campos. El del criterio, Código de laboratorio, y el campo a actualizar (Precio). Una vez agregados estos campos a la consulta y seleccionado en el menú Consulta » Consulta de actualización, teclearemos el criterio [Teclee laboratorio] en el campo del laboratorio y, en la fila Actualizar a del campo Precio, introduciremos [Precio]*(1+[Porcentaje]). Al ejecutar la consulta, si tecleamos el porcentaje 0,12 y el laboratorio 15 conseguiremos incrementar en un 12% los precios de ese laboratorio.Por supuesto, los parámetros también pueden utilizarse en consultas de creación de tabla, de datos anexados y de tabla de referencias cruzadas.