sql y programacion en access 2010

62
“SQL COMO CÓDIGO DE PROGRAMACIÓN PARA MICROSOFT ACCESS 2010”

Upload: juanito-edgar

Post on 12-Jun-2015

5.746 views

Category:

Technology


3 download

DESCRIPTION

Access como herramienta de negocios

TRANSCRIPT

Page 1: Sql y programacion en access 2010

“SQL COMO CÓDIGO DE PROGRAMACIÓN PARA MICROSOFT ACCESS 2010”

Page 2: Sql y programacion en access 2010

2

DEDICATORIA

A mi familia, porque creyeron en mí y porque me

impulsaron a seguir triunfando, dándome ejemplos

dignos de superación y entrega.

Page 3: Sql y programacion en access 2010

3

ÍNDICE

1. ¿Qué es SQL? 04

2. Cláusulas SQL básicas: SELECT, FROM y WHERE 09

3. Ordenar los resultados: ORDER BY BY 12

4. Trabajar con datos resumidos: GROUP BY y HAVING 13

5. Combinar los resultados de la consulta: UNION 15

6. Más información acerca de la cláusula SELECT 18

7. Más información acerca de la cláusula FROM 22

8. Más información acerca de la cláusula WHERE 28

9. BIBLIOGRAFÍA

Page 4: Sql y programacion en access 2010

4

INTRODUCCIÓN A ACCESS SQL

Si desea recuperar datos de una base de datos, puede solicitar los datos

mediante el Lenguaje de consulta estructurado o SQL. SQL es un lenguaje

de computación que se asemeja al inglés y que los programas de bases de

datos comprenden. Cada consulta que se ejecuta usa SQL en segundo

plano.

Si comprende el funcionamiento de SQL, podrá crear mejores consultas

además de entender cómo solucionar una consulta que no devuelve los

resultados deseados.

Más información acerca de la cláusula WHERE

Page 5: Sql y programacion en access 2010

5

¿Qué es SQL?

SQL es un lenguaje de computación que sirve para trabajar con conjuntos

de datos y las relaciones entre ellos. Los programas de bases de datos

relacionales, como Microsoft Office Access, usan SQL para trabajar con

datos. A diferencia de muchos lenguajes de computación, SQL no es difícil

de leer y entender, incluso para un usuario inexperto. Al igual que muchos

lenguajes de computación, SQL es un estándar internacional reconocido

por organismos de estándares, como ISO y ANSI.

“SQL no es difícil de leer y entender, incluso para un usuario inexperto.”

SQL se usa para describir conjuntos de datos que pueden ayudarle a

responder preguntas. Cuando usa SQL, debe emplear la sintaxis correcta.

La sintaxis es el conjunto de reglas mediante las cuales se combinan los

elementos de un lenguaje correctamente. La sintaxis de SQL se basa en la

sintaxis del inglés y usa muchos de los mismos elementos que la sintaxis

de Visual Basic para Aplicaciones (VBA).

Por ejemplo, una simple instrucción SQL que recupera una lista de los

apellidos de contactos cuyo nombre es María podría ser similar a esto:

Page 6: Sql y programacion en access 2010

6

SELECT Last_Name

FROM Contacts

WHERE First_Name = 'Mary';

NOTA SQL no se usa solo para manipular datos, sino también para crear

y modificar el diseño de los objetos de una base de datos (por ejemplo, las

tablas). La parte de SQL que se usa para crear y modificar objetos de una

de base de datos se denomina lenguaje de definición de datos (DDL). En

este tema no se describe el DDL. Para obtener más información, vea el

tema acerca de cómo crear o modificar tablas o índices mediante una

consulta de definición de datos.

Instrucciones SELECT

Para describir un conjunto de datos mediante SQL, escriba una instrucción

SELECT. Una instrucción SELECT contiene una descripción completa del

conjunto de datos que desea obtener de una base de datos. Incluye lo

siguiente:

Qué tablas contienen los datos.

Cómo se relacionan los datos de orígenes diferentes.

Qué campos o cálculos proporcionarán los datos.

Criterios que los datos deben cumplir para ser incluidos.

Si se deben ordenar los datos y, en caso de ser así, cómo deben

ordenarse.

Page 7: Sql y programacion en access 2010

7

Cláusulas SQL

Al igual que una frase, una instrucción SQL tiene cláusulas. Cada cláusula

realiza una función para la instrucción SQL. Algunas cláusulas son

obligatorias en una instrucción SELECT. En la siguiente tabla se enumeran

las cláusulas SQL más comunes.

CLÁUSULA

SQL

FUNCIÓN OBLIGATORIA

SELECT Muestra una lista de los campos que

contienen datos de interés.

FROM Muestra las tablas que contienen los

campos de la cláusula SELECT.

WHERE Especifica los criterios de campo que cada

registro debe cumplir para poder ser

incluido en los resultados.

No

ORDER BY Especifica la forma de ordenar los

resultados.

No

GROUP BY En una instrucción SQL que contiene

funciones de agregado, muestra los

campos que no se resumen en la cláusula

SELECT.

Solo si están estos

campos

HAVING En una instrucción SQL que contiene

funciones de agregado, especifica las

condiciones que se aplican a los campos

que se resumen en la instrucción SELECT.

No

Page 8: Sql y programacion en access 2010

8

Términos de SQL

Cada cláusula SQL consta de términos, comparables a diferentes partes de

la oración. En la siguiente tabla se enumeran los tipos de términos de SQL.

TÉRMINO

DE SQL

PARTE DE LA

ORACIÓN

COMPARABLE

DEFINICIÓN EJEMPLO

identificador sustantivo Nombre que se usa

para identificar un

objeto de la base de

datos, como el nombre

de un campo.

Clientes.[Número

de teléfono]

operador verbo o adverbio Palabra clave que

representa o modifica

una acción.

AS

constante sustantivo Valor que no cambia,

como un número o un

valor nulo (NULL).

42

expresión adjetivo Combinación de

identificadores,

operadores, constantes

y funciones que se

evalúa como un valor

único.

> =

Productos.[Precio

por unidad]

Page 9: Sql y programacion en access 2010

9

CLÁUSULAS SQL BÁSICAS: SELECT, FROM Y WHERE

Una instrucción SQL tiene el formato general:

SELECT field_1

FROM table_1

WHERE criterion_1;

NOTAS

Access pasa por alto los saltos de línea en una instrucción SQL. Sin

embargo, conviene usar una línea para cada cláusula para que las

instrucciones SQL sean más fáciles de leer por todos.

Cada una de las instrucciones SELECT termina con un punto y coma

(;). El punto y coma (;) puede aparecer al final de la última cláusula o

solo en una línea al final de la instrucción SQL.

Un ejemplo en Access

A continuación se muestra el aspecto que podría tener en Access una

instrucción SQL para una consulta de selección simple:

Page 10: Sql y programacion en access 2010

10

Cláusula SELECT

Cláusula FROM

Cláusula WHERE

En este ejemplo de instrucción SQL, se indica "Seleccionar los datos

almacenados en los campos Dirección de correo electrónico y Empresa de

la tabla llamada Contactos, específicamente aquellos registros en los

cuales el valor del campo Ciudad sea Seattle".

A continuación se incluye un ejemplo y se describe cada cláusula para

mostrar cómo funciona la sintaxis de SQL.

CLÁUSULA SELECT:

SELECT [E-mail Address], Company

Ésta es la cláusula SELECT. Se compone de un operador (SELECT) seguido

de dos identificadores ([Dirección de correo electrónico] y Empresa).

Si un identificador contiene espacios o caracteres especiales (como

"Dirección de correo electrónico"), se debe escribir entre corchetes.

Una cláusula SELECT no tiene que mencionar las tablas que contienen los

campos y no puede especificar las condiciones que deben cumplir los

datos que se van a incluir.

Page 11: Sql y programacion en access 2010

11

La cláusula SELECT siempre aparece antes que la cláusula FROM en una

instrucción SELECT.

CLÁUSULA FROM:

FROM Contacts

Ésta es la cláusula FROM. Se compone de un operador (FROM) seguido de

un identificador (Contactos).

Una cláusula FROM no enumera los campos que se van a seleccionar.

CLÁUSULA WHERE:

WHERE City="Seattle"

Ésta es la cláusula WHERE. Se compone de un operador (WHERE) seguido

de un identificador (Ciudad="Seattle").

NOTA A diferencia de las cláusulas SELECT y FROM, la cláusula WHERE

no es un elemento obligatorio en una instrucción SELECT.

Puede realizar muchas de las acciones que SQL permite mediante las

cláusulas SELECT, FROM y WHERE. En las secciones incluidas al final de

este artículo encontrará más información acerca de cómo usar estas

cláusulas: Más información acerca de la cláusula SELECT, FROM, WHERE.

Page 12: Sql y programacion en access 2010

12

ORDENAR LOS RESULTADOS: ORDER BY

Al igual que Microsoft Office Excel, Access permite ordenar los resultados

de la consulta en una hoja de datos. Además, puede especificar en la

consulta cómo desea ordenar los resultados al ejecutar la consulta

mediante una cláusula ORDER BY. Si usa una cláusula ORDER BY, ésta será

la última cláusula en la instrucción SQL.

Una cláusula ORDER BY contiene una lista de los campos que desea usar

para ordenar, en el mismo orden en el que desea aplicar las operaciones

de ordenación.

Por ejemplo, suponga que desea ordenar los resultados por el valor del

campo Empresa en orden descendente y, en caso de que haya registros

con el mismo valor para Empresa , desea ordenarlos además por el valor

indicado en el campo Dirección de correo electrónico en orden

ascendente. La cláusula ORDER BY podría ser similar a la siguiente:

ORDER BY Company DESC, [E-mail Address]

NOTA De forma predeterminada, Access ordena los valores de forma

ascendente (A-Z, de menor a mayor). Use la palabra clave DESC para

ordenar los valores en orden descendente.

Page 13: Sql y programacion en access 2010

13

TRABAJAR CON DATOS RESUMIDOS: GROUP BY Y HAVING:

En ocasiones, es posible que desee trabajar con datos resumidos, como las

ventas totales de un mes o los artículos más caros del inventario. Para ello,

debe aplicar una función de agregado a un campo en la cláusula SELECT.

Por ejemplo, si desea que la consulta muestre la cantidad de direcciones

de correo electrónico para cada una de las empresas, la cláusula SELECT

debe ser similar a la siguiente:

SELECT COUNT([E-mail Address]), Company

Las funciones de agregado que se pueden usar dependen del tipo de

datos del campo o la expresión que desea emplear.

ESPECIFICAR CAMPOS QUE NO SE USAN EN UNA FUNCIÓN DE

AGREGADO: CLÁUSULA GROUP BY:

Al usar las funciones de agregado, normalmente debe crear una cláusula

GROUP BY. Una cláusula GROUP BY muestra una lista de todos los campos

a los que no se aplica una función de agregado. Si aplica las funciones de

agregado a todos los campos de una consulta, no es necesario crear la

cláusula GROUP BY.

Una cláusula GROUP BY se incluye inmediatamente después de la cláusula

WHERE o la cláusula FROM si no hay una cláusula WHERE. La cláusula

Page 14: Sql y programacion en access 2010

14

GROUP BY muestra una lista de los campos que aparecen en la cláusula

SELECT.

Por ejemplo, siguiendo con el ejemplo anterior, si la cláusula SELECT aplica

una función de agregado a [Dirección de correo electrónico] pero no a

Empresa, la cláusula GROUP BY sería similar a la siguiente:

GROUP BY Company

LIMITAR LOS VALORES DE AGREGADO MEDIANTE LOS CRITERIOS DE

AGRUPACIÓN: CLÁUSULA HAVING:

Si desea usar criterios para limitar sus resultados, pero el campo al que

desea aplicar el criterio se usa en una función de agregado, no puede usar

una cláusula WHERE. En su lugar, debe usar una cláusula HAVING. La

cláusula HAVING funciona como la cláusula WHERE, pero se usa para los

datos agregados.

Por ejemplo, suponga que usa la función COUNT (que devuelve un

número de filas) con el primer campo de la cláusula SELECT:

SELECT COUNT([E-mail Address]), Company

Si desea que la consulta limite los resultados según el valor de la función

COUNT, no puede usar un criterio para dicho campo en la cláusula

WHERE. Por el contrario, debe incluir el criterio en una cláusula HAVING.

Por ejemplo, si solo desea que la consulta indique las filas en caso de que

Page 15: Sql y programacion en access 2010

15

exista más de una dirección de correo electrónico asociada con la

empresa, la cláusula HAVING debería ser similar a la siguiente:

HAVING COUNT([E-mail Address])>1

NOTA Una consulta puede incluir una cláusula WHERE y una cláusula

HAVING: los criterios para los campos que no se usan en una función de

agregado se corresponden con la cláusula WHERE y los criterios de los

campos que se usan en las funciones de agregado se corresponden con la

cláusula HAVING.

COMBINAR LOS RESULTADOS DE LA CONSULTA: UNION:

Si desea revisar todos los datos obtenidos en conjunto de varias consultas

de selección similares, como un conjunto combinado, use el operador

UNION.

El operador UNION le permite combinar dos instrucciones SELECT en una.

Las instrucciones SELECT que combine deben tener el mismo número de

campos de resultado, en el mismo orden y con el mismo tipo de datos o

con tipos de datos compatibles. Al ejecutar la consulta, los datos de cada

conjunto de campos correspondientes se combinan en un único campo de

resultado de modo que el resultado de la consulta tenga el mismo número

de campos que cada una de las instrucciones de selección.

Page 16: Sql y programacion en access 2010

16

NOTA A efectos de una consulta de unión, los tipos de datos Texto y

Número son compatibles.

Si usa el operador UNION, también puede usar la palabra clave ALL para

especificar si los resultados de la consulta deben incluir las filas duplicadas,

si existe alguna.

La sintaxis básica de SQL para una consulta de unión que combina dos

instrucciones SELECT es la siguiente:

SELECT field_1

FROM table_1

UNION [ALL]

SELECT field_a

FROM table_a;

Por ejemplo, supongamos que tiene una tabla denominada Productos y

otra tabla denominada Servicios. Ambas tablas tienen campos que

contienen el nombre del producto o servicio, el precio, la disponibilidad de

garantía del servicio o de garantía del producto, y si el producto o servicio

se ofrece de forma exclusiva. Aunque en la tabla Productos se almacena

información de garantía del producto y en la tabla Servicios se almacena

información de garantía del servicio, la información básica es la misma (si

un producto o servicio determinado incluye una garantía de calidad).

Page 17: Sql y programacion en access 2010

17

Puede usar una consulta de unión, como la que se muestra a continuación,

para combinar los cuatro campos de las dos tablas:

SELECT name, price, warranty_available, exclusive_offer

FROM Products

UNION ALL

SELECT name, price, guarantee_available,

exclusive_offer

FROM Services;

Para obtener más información acerca de cómo combinar instrucciones

SELECT mediante el operador UNION, vea el tema sobre cómo combinar

los resultados de varias consultas de selección mediante una consulta de

unión.

Page 18: Sql y programacion en access 2010

18

MÁS INFORMACIÓN ACERCA DE LA CLÁUSULA SELECT

En una instrucción SELECT, la cláusula SELECT incluye los campos que

contienen los datos que desea usar.

Usar corchetes para incluir los identificadores

Puede escribir el nombre entre corchetes para incluir el nombre de un

campo en la cláusula SELECT. Si el nombre no contiene espacios ni

caracteres especiales (como signos de puntuación), los corchetes son

opcionales. Si el nombre contiene espacios o caracteres especiales, debe

usar los corchetes.

SUGERENCIA Un nombre que contiene espacios resulta más fácil de leer

y le permite ahorrar tiempo cuando diseña formularios e informes, pero es

Page 19: Sql y programacion en access 2010

19

posible que luego deba escribir más al especificar instrucciones SQL. Debe

tener en cuenta este dato cuando asigne un nombre a los objetos de la

base de datos.

Si la instrucción SQL tiene dos o más campos con el mismo nombre, debe

agregar el nombre del origen de datos de cada campo al nombre del

campo en la cláusula SELECT. Debe usar el mismo nombre para los

orígenes de datos que ha usado en la cláusula FROM.

Seleccionar todos los campos

Si desea incluir todos los campos de un origen de datos, puede enumerar

todos los campos individualmente en la cláusula SELECT o bien puede usar

el carácter comodín asterisco (*). Si usa el asterisco, Access determina los

campos que contiene el origen de datos cuando se ejecuta la consulta e

incluye todos esos campos en la consulta. Esto le permite asegurarse de

que la consulta se actualizará en caso de que se agreguen nuevos campos

al origen de datos.

Puede usar el asterisco con uno o más orígenes de datos en una

instrucción SQL. Si usa el asterisco y hay varios orígenes de datos, debe

incluir el nombre del origen de datos junto con el asterisco para que

Access pueda determinar desde qué origen de datos debe incluir todos los

campos.

Page 20: Sql y programacion en access 2010

20

Por ejemplo, suponga que desea seleccionar todos los campos de la tabla

Pedidos, pero solo la dirección de correo electrónico de la tabla de

Contactos. La cláusula SELECT podría ser similar a la siguiente:

SELECT Orders.*, Contacts.[E-mail Address]

NOTA Realice un seguimiento cada vez que use el asterisco. Si más

adelante se agregan al origen de datos nuevos campos que no estaban

previstos, los resultados de la consulta podrían no ser los deseados.

Seleccionar valores distintos

Si sabe que la instrucción seleccionará datos redundantes y prefiere ver

solo los valores distintos, puede usar la palabra clave DISTINCT en la

cláusula SELECT. Por ejemplo, suponga que cada uno de los clientes

representa varios intereses diferentes y algunos usan el mismo número de

teléfono. Si desea asegurarse de que solo se vea cada uno de los números

de teléfono una vez, la cláusula SELECT debe ser similar a la siguiente:

SELECT DISTINCT [txtCustomerPhone]

Usar nombres sustitutos para los campos o expresiones: palabra clave

AS

Puede cambiar la etiqueta que se muestra para cualquier campo en la vista

de hoja de datos mediante la palabra clave AS y un alias de campo en la

cláusula SELECT. Un alias de campo es un nombre que se asigna a un

Page 21: Sql y programacion en access 2010

21

campo en una consulta para que las consultas sean más fáciles de leer. Por

ejemplo, si desea seleccionar datos de un campo llamado txtTelClien y el

campo contiene los números de teléfono de los clientes, puede mejorar la

legibilidad de los resultados mediante el uso de un alias de campo en la

instrucción SELECT de la siguiente manera:

SELECT [txtCustPhone] AS [Customer Phone]

NOTA Debe usar un alias de campo si se usa una expresión en una

cláusula SELECT.

Seleccionar mediante una expresión

En ocasiones, es posible que necesite realizar cálculos a partir de los datos

o recuperar solo una parte de los datos de un campo. Por ejemplo,

suponga que desea obtener el año de nacimiento de los clientes a partir

de los datos del campo Fecha de nacimiento de la base de datos. La

cláusula SELECT puede ser similar a la siguiente:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Esta expresión consta de la función DatePart y dos argumentos ("yyyy"

(constante) y [BirthDate] (identificador)).

Puede usar cualquier expresión válida como campo siempre que la

expresión genere un valor único al especificar un valor de entrada único.

Page 22: Sql y programacion en access 2010

22

MÁS INFORMACIÓN ACERCA DE LA CLÁUSULA FROM

En una instrucción SELECT, la cláusula FROM especifica las tablas o

consultas que contienen los datos que usará la cláusula SELECT.

Supongamos que desea saber el número de teléfono de un cliente

específico. Si la tabla que contiene el campo que almacena estos datos se

llama tblCliente, la cláusula FROM sería similar a:

FROM tblCustomer

Usar corchetes para incluir los identificadores

Puede escribir el nombre entre corchetes. Si el nombre no contiene

espacios ni caracteres especiales (como signos de puntuación), los

Page 23: Sql y programacion en access 2010

23

corchetes son opcionales. Si el nombre contiene espacios o caracteres

especiales, debe usar los corchetes.

SUGERENCIA Un nombre que contiene espacios resulta más fácil de leer

y le permite ahorrar tiempo cuando diseña formularios e informes, pero es

posible que luego deba escribir más al especificar instrucciones SQL. Debe

tener en cuenta este dato cuando asigne un nombre a los objetos de la

base de datos.

Usar nombres sustitutos para orígenes de datos

Puede usar un nombre diferente para hacer referencia a un origen de

datos en una instrucción SELECT mediante un alias de tabla en la cláusula

FROM. Un alias de tabla es el nombre que se asigna a un origen de datos

en una consulta si se usa una expresión como origen de datos o para

facilitar la escritura y lectura de la instrucción SQL. Esto puede ser

especialmente útil si el nombre del origen de datos es largo o difícil de

escribir, sobre todo si hay varios campos que tienen el mismo nombre en

diferentes tablas.

Por ejemplo, si desea seleccionar datos de dos campos, ambos con el

nombre ID, uno de los cuales procede de la tabla tblCliente y el otro de la

tabla tblPedido, la cláusula SELECT puede ser similar a la siguiente:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Page 24: Sql y programacion en access 2010

24

Al usar alias de tabla en la cláusula FROM, puede facilitar la escritura de la

consulta. Así, la cláusula FROM podría ser similar a:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

A continuación, puede usar estos alias de tabla en la cláusula SELECT del

modo siguiente:

SELECT [C].[ID], [O].[ID]

NOTA Si se usa un alias de tabla, puede hacer referencia al origen de

datos en la instrucción SQL mediante el alias o mediante el nombre

completo del origen de datos.

Combinar datos relacionados

Cuando necesite combinar pares de registros de dos orígenes de datos en

un registro único en los resultados de una consulta, puede realizar una

combinación. Una combinación es una operación de SQL que especifica

cómo se relacionan dos orígenes de datos y si se deben incluir los datos

de un origen en caso de no haber ningún dato correspondiente del otro

origen.

Para combinar la información de dos orígenes de datos, debe realizar una

operación de combinación en el campo que tienen en común. Si los

valores almacenados en este campo coinciden, los datos de los registros

se combinan en los resultados.

Page 25: Sql y programacion en access 2010

25

Además de la combinación de datos, también se puede usar una

combinación para especificar si se incluirán registros de cualquier tabla en

caso de no haber ningún registro correspondiente en la tabla relacionada.

Por ejemplo, supongamos que desea usar los datos de dos tablas en una

consulta: tblCliente y tblPedido. Las dos tablas tienen un campo, IDCliente,

que identifica a un cliente. Cada uno de los registros de la tabla tblCliente

puede tener uno o más registros correspondientes en la tabla tblPedido y

los valores correspondientes pueden estar determinados por los valores

del campo IDCliente.

Si desea combinar las tablas de modo que la consulta combine los

registros de las tablas y excluya registros de cada tabla si no hay ningún

registro correspondiente en la otra tabla, la cláusula FROM puede ser

similar a la siguiente (se ha agregado un salto de línea para mejorar la

legibilidad):

FROM [tblCustomer] INNER JOIN [tblOrder]

ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

En Microsoft Office Access, las combinaciones se producen en la cláusula

FROM de una instrucción SELECT. Hay dos tipos de combinaciones:

combinaciones internas y combinaciones externas. En las siguientes

secciones se explican estos dos tipos de combinaciones.

Page 26: Sql y programacion en access 2010

26

Combinaciones internas

Las combinaciones internas son el tipo de combinación más común.

Cuando se ejecuta una consulta con una combinación interna, los únicos

registros que se incluyen en los resultados de la consulta son los registros

en los que existe un valor común en las dos tablas combinadas.

Una combinación interna tiene la siguiente sintaxis (se ha agregado un

salto de línea para mejorar la legibilidad):

FROM table1 INNER JOIN table2

ON table1.field1 compopr table2.field2

En la siguiente tabla se describen las diferentes partes de una operación

INNER JOIN.

PARTE DESCRIPCIÓN

tabla1,

tabla2

Nombres de las tablas cuyos registros se combinan.

campo1,

campo2

Nombres de los campos que se combinan. Si no son numéricos,

los campos deben ser del mismo tipo de datos y contener la

misma clase de datos, pero pueden tener nombres distintos.

opcomp Cualquier operador de comparación relacional: "=", "<", ">",

"<=", ">=" o "<>".

Page 27: Sql y programacion en access 2010

27

Combinaciones externas

Las combinaciones externas son similares a las combinaciones internas

porque indican a una consulta cómo combinar información a partir de dos

orígenes. Son diferentes ya que también especifican si se incluirán datos

donde no hay ningún valor común. Las combinaciones externas son

direccionales: se puede especificar si incluir todos los registros del primer

origen de datos especificado en la combinación (denominada

combinación izquierda o left join) o incluir todos los registros del segundo

origen de datos en la combinación (denominada combinación derecha o

right join).

Una combinación externa tiene la siguiente sintaxis:

FROM tabla1 [ LEFT | RIGHT ] JOIN tabla2

ON tabla1.campo1opcomp tabla2.campo2

En la siguiente tabla se describen las diferentes partes de las operaciones

LEFT JOIN y RIGHT JOIN.

PARTE DESCRIPCIÓN

tabla1,

tabla2

Nombres de las tablas cuyos registros se combinan.

campo1,

campo2

Nombres de los campos que se combinan. Estos campos deben

ser del mismo tipo de datos y contener la misma clase de datos,

pero pueden tener nombres distintos.

opcomp Cualquier operador de comparación relacional: "=", "<", ">",

"<=", ">=" o "<>".

Page 28: Sql y programacion en access 2010

28

MÁS INFORMACIÓN ACERCA DE LA CLÁUSULA WHERE

Si desea usar datos para limitar el número de registros devueltos en una

consulta, puede usar criterios de consulta en la cláusula WHERE de una

instrucción SELECT. Un criterio de consulta es similar a una

fórmula: consiste en una cadena que puede incluir referencias de campos,

operadores y constantes. Los criterios de consulta son un tipo de

expresión.

En la siguiente tabla se muestran algunos criterios de ejemplo y se explica

cómo funcionan.

Page 29: Sql y programacion en access 2010

29

CRITERIOS DESCRIPCIÓN

>25 y <50 Este criterio se aplica a un campo de número, como

Precios o UnidadesenExistencias. Incluye solo

aquellos registros en los que el campo contiene un

valor superior a 25 e inferior a 50.

DifFecha("aaaa",

[FechaNacimiento],

Fecha()) > 30

Este criterio se aplica a un campo de Fecha/Hora,

como Fecha de nacimiento. En el resultado de la

consulta se incluyen únicamente los registros en los

cuales la cantidad de años entre la fecha de

nacimiento de una persona y la fecha actual es

superior a 30.

Es nulo Este criterio se puede aplicar a cualquier tipo de

campo para mostrar los registros en los que el valor

de campo es nulo.

Tal como se observa en la tabla anterior, los criterios pueden ser muy

distintos entre sí según el tipo de datos del campo al que se apliquen y 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.

Page 30: Sql y programacion en access 2010

30

IMPORTANTE Si se usa un campo con una función de agregado, no

podrá especificar criterios para dicho campo en una cláusula WHERE. En su

lugar, debe usar una cláusula HAVING para especificar criterios para los

campos agregados. Para obtener más información, vea la sección Trabajar

con datos resumidos: GROUP BY y HAVING.

Sintaxis de la cláusula WHERE

Una cláusula WHERE tiene la siguiente sintaxis básica:

WHERE field = criterion

Por ejemplo, suponga que desea saber el número de teléfono de un

cliente, pero solo recuerda que el apellido del cliente es Bagel. En lugar de

buscar en todos los números de teléfono de la base de datos, puede usar

una cláusula WHERE para limitar los resultados y encontrar más fácilmente

el número de teléfono deseado. Si los apellidos se almacenan en un

campo denominado Apellidos, la cláusula WHERE será similar a la

siguiente::

WHERE [LastName]='Bagel'

NOTA No es necesario basar los criterios de la cláusula WHERE en la

equivalencia de valores. Puede usar otros operadores de comparación,

como mayor que (>) o menor que (<). Por ejemplo, WHERE [Precio]>100.

Page 31: Sql y programacion en access 2010

31

Usar la cláusula WHERE para combinar orígenes de datos

En ocasiones, es posible que necesite combinar orígenes de datos basados

en los campos que contienen datos coincidentes, pero que tienen distintos

tipos de datos. Por ejemplo, el campo de una tabla puede tener el tipo de

datos Número y es posible que desee comparar dicho campo con un

campo de otra tabla que tiene el tipo de datos Texto.

No puede crear una unión entre campos que tienen distintos tipos de

datos. Para combinar los datos de dos orígenes de datos basados en los

valores de los campos que tienen distintos tipos de datos, debe crear una

cláusula WHERE que use un campo como criterio para el otro campo

mediante la palabra clave LIKE.

Por ejemplo, suponga que desea usar los datos de la tabla1 y la tabla2,

pero solo si los datos del campo1 (campo de texto de la tabla1) coinciden

con los datos del campo2 (campo numérico de la tabla2). La cláusula

WHERE será similar a la siguiente:

WHERE field1 LIKE field2

Para obtener más información acerca de cómo crear un criterio para usar

una cláusula WHERE, vea el tema de ejemplos de criterios de consulta.

Ejemplos de criterios de consulta

Mostrar todo

Page 32: Sql y programacion en access 2010

32

Cuando se desea limitar los resultados de una consulta basada en los

valores de un campo, se usan los criterios de consulta. Un criterio de

consulta es una expresión que Access compara con los valores de los

campos de consulta para determinar si se va a incluir o no el registro que

contiene cada uno de los valores. Por ejemplo, = "Chicago" es una

expresión que Access puede comparar con los valores de un campo de

texto de una consulta. Si el valor para ese criterio en un registro

determinado es "Chicago", Access incluye el registro en los resultados de

la consulta.

Este tema contiene varios ejemplos de criterios de consulta. En el tema, se

supone que ya sabe diseñar consultas de selección sencillas.

Para obtener más información acerca de las consultas,

Page 33: Sql y programacion en access 2010

33

TRABAJO CON CRITERIOS

INFORMACIÓN GENERAL:

Un criterio es similar a una fórmula. Es una cadena que puede estar

formada por referencias de campo, operadores y constantes. Los criterios

de consulta también se conocen como expresiones.

En el siguiente vídeo, se muestra cómo usar los criterios para un campo de

texto.

En la tabla siguiente, se muestran algunos ejemplos de criterios y se

explica su funcionamiento.

Page 34: Sql y programacion en access 2010

34

CRITERIO 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.

Los criterios pueden ser muy distintos entre sí. Algunos criterios son

sencillos y usan operadores básicos (como "<) y constantes (como "50").

Otros son complejos y usan funciones ("como DifFecha") o referencias de

campo (como "[FechaNacimiento]"). Este tema proporciona varios

ejemplos de criterios usados con frecuencia, agrupados por el tipo de

Page 35: Sql y programacion en access 2010

35

datos al que se aplican. Puede usar los ejemplos proporcionados en este

tema como punto de partida para especificar sus propios 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

un campo para el cual desea especificar un criterio 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.

Una vez que el campo deseado está en la cuadrícula de diseño, escriba el

criterio para ese campo en la fila Criterios.

Usar el Generador de expresiones para escribir criterios

Puede utilizar el Generador de expresiones siempre que desee usar

criterios que contengan funciones. El Generador de expresiones

proporciona características para ayudarle a usar todas las funciones

correctamente. Para obtener más información sobre el generador de

expresiones, vea el artículos sobre cómo usar el Generador de expresiones.

Todos los criterios especificados en la fila Criterios están combinados

Los criterios que especifique para los distintos campos de la fila Criterios

se combinan mediante el operador Y. Por ejemplo, podría especificar el

Page 36: Sql y programacion en access 2010

36

criterio ="Chicago" para el campo Ciudad y el criterio <

AgregFecha("aaaa", -40, Fecha()) para el campo FechaNacimiento. Los

dos criterios se interpretan juntos de la siguiente manera:

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

Fecha())

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.

Page 37: Sql y programacion en access 2010

37

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

resultados.

Especifique criterios alternativos utilizando la fila O

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 38: Sql y programacion en access 2010

38

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 cambia el resultado de la consulta sin modificar el

diseño de ésta. Para obtener más información sobre los filtros, vea la

sección Vea también

Si los campos de los criterios no cambian pero los valores que desea sí

cambian con frecuencia, puede crear una consulta de parámetros. Una

consulta de parámetros solicita al usuario una entrada de datos y luego

usa estos datos para crear los criterios de consulta. Para obtener más

información sobre las consultas de parámetros.

Criterios para campos Texto, Memo e Hipervínculo

Los 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.

Page 39: Sql y programacion en access 2010

39

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

Como U* Devuelve los registros

correspondientes a todos los

países o regiones cuyos nombres

Page 40: Sql y programacion en access 2010

40

U 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 lo

denomina "carácter comodín").

Para obtener una lista de este

tipo de caracteres, vea el artículo

sobre información de referencia

sobre los caracteres comodín en

Access.

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

Como "*Corea*" Devuelve los registros

correspondientes a todos los

países o regiones que contienen

Page 41: Sql y programacion en access 2010

41

Corea la cadena "Corea".

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.

Page 42: Sql y programacion en access 2010

42

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" Devuelve los registros de todos

los países o regiones a partir de

México y posteriores por orden

Page 43: Sql y programacion en access 2010

43

México, si se

ordenan

alfabéticamente

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

Der([PaísRegión], 1) =

"y"

Devuelve los registros

correspondientes a todos los

países o regiones cuyo nombre

Page 44: Sql y programacion en access 2010

44

en el valor del

campo

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

Page 45: Sql y programacion en access 2010

45

carácter comodín _ se puede usar

en una expresión que también

contiene el carácter comodín %.

Los criterios de hipervínculos son algo difíciles

De forma predeterminada, un criterio que se especifique para un campo

Hipervínculo se aplica a la parte de texto visible del valor del campo y no

al destino del vínculo. 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/"

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 es la

dirección URL que desea buscar.

Criterios para campos Número, Moneda y Autonumeración

Los ejemplos siguientes son para el campo PrecioUnidad de una consulta

basada en una tabla donde se almacena información de productos. El

Page 46: Sql y programacion en access 2010

46

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

100

100 Devuelve los registros en los que el precio

por unidad del producto es 100 $.

No coincidan con

un valor, como

No 1000 Devuelve los registros en los que el precio

por unidad del producto no es 1000 $.

Page 47: Sql y programacion en access 2010

47

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,99

O 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 $.

Page 48: Sql y programacion en access 2010

48

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 49: Sql y programacion en access 2010

49

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/Hora

Los 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.

Page 50: Sql y programacion en access 2010

50

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 2 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 > #2/2/2006# Devuelve los registros de las

Page 51: Sql y programacion en access 2010

51

posteriores a una

fecha

determinada,

como el 2/2/2006

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, incluidos los extremos.

Por 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.

Page 52: Sql y programacion en access 2010

52

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

(independienteme

nte 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

(independienteme

nte del año), como

ParcFecha("t",

[FechaVenta]) = 1

Devuelve los registros de las

transacciones que tuvieron lugar en

el primer trimestre de cualquier

año.

Page 53: Sql y programacion en access 2010

53

el primer trimestre

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 ParcFecha("ss", Devuelve los registros de las

Page 54: Sql y programacion en access 2010

54

que sean de la

semana en curso

[FechaVenta]) =

ParcFecha("ss",

Fecha()) Y Año(

[FechaVenta]) =

Año(Fecha())

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

Page 55: Sql y programacion en access 2010

55

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",

Devuelve los registros

correspondientes al mes próximo. Si

hoy es el 2/2/2006, verá los

registros correspondientes a marzo

de 2006.

Page 56: Sql y programacion en access 2010

56

Fecha()) + 1

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

trimestre de 2006.

Contengan una

fecha que sea del

trimestre anterior

Año([FechaVenta])*4

+ParcFecha("t",[Fech

aVenta]) =

Año(Fecha())*4+ParcF

echa("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

Año([FechaVenta])*4

+ParcFecha("t",[Fech

Devuelve los registros

correspondientes al próximo

Page 57: Sql y programacion en access 2010

57

próximo trimestre aVenta]) =

Año(Fecha())*4+ParcF

echa("t",Fecha())+1

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é

Año([FechaVenta]) =

Año(Fecha()) Y

Devuelve los registros de las

transacciones con fechas entre el 1

Page 58: Sql y programacion en access 2010

58

entre el 1 de

enero y hoy

(registros del año

hasta la fecha)

Mes([FechaVenta])

<= Mes(Fecha()) Y

Día([FechaVenta]) <=

Día (Fecha())

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.

Page 59: Sql y programacion en access 2010

59

Criterios para otros campos

TIPO DE

CAMPO

CÓMO APLICAR LOS CRITERIOS

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.

Búsqueda Hay dos tipos básicos 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

Page 60: Sql y programacion en access 2010

60

los tipos de datos de los campos. Para ello:

1. Busque la tabla de origen en el panel de navegació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 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.

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 ello:

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.

Page 61: Sql y programacion en access 2010

61

4. Escriba los criterios en la fila Criterios correspondiente al campo

de valor único, utilizando criterios apropiados según cuál sea el

tipo de datos de los valores.

Cada valor del campo multivalor se puede evaluar

individualmente mediante los criterios que especifique. Por

ejemplo, suponga que tiene 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 62: Sql y programacion en access 2010

62

BIBLIOGRAFÍA

Access 2010. Alfredo Rico

Mariano Ordás Fernández Manual Rápido de Microsoft Access 2010

www.ebriik.com

http://dominandoaccess.com/blog