Sei sulla pagina 1di 65

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 computacin que se asemeja al ingls 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 adems de entender cmo solucionar una consulta
que no devuelve los resultados deseados.
NOTA

No se puede editar SQL para una consulta web.

En este artculo
Qu es SQL?
Clusulas SQL bsicas: SELECT, FROM y WHERE
Ordenar los resultados: ORDER BY BY
Trabajar con datos resumidos: GROUP BY y HAVING
Combinar los resultados de la consulta: UNION
Ms informacin acerca de la clusula SELECT
Ms informacin acerca de la clusula FROM
Ms informacin acerca de la clusula WHERE

Qu es SQL?
SQL es un lenguaje de computacin 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 computacin, SQL no es difcil de leer y entender, incluso para un usuario inexperto. Al igual que muchos
lenguajes de computacin, SQL es un estndar internacional reconocido por organismos de estndares, como ISO y ANSI.

SQL no es difcil 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 ingls y usa muchos de los mismos elementos que la sintaxis de

Visual Basic para Aplicaciones (VBA) (Visual Basic para Aplicaciones (VBA): versin del lenguaje de macros de Microsoft Visual
Basic que se utiliza para programar aplicaciones basadas en Microsoft Windows y que se incluye en varios programas de
Microsoft.).
Por ejemplo, una simple instruccin SQL que recupera una lista de los apellidos de contactos cuyo nombre es Mara podra ser
similar a esto:
SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';
NOTA

SQL no se usa solo para manipular datos, sino tambin para crear y modificar el diseo 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 definicin de datos (DDL). En este tema no se describe el DDL. Para obtener ms informacin, vea el
tema acerca de cmo crear o modificar tablas o ndices mediante una consulta de definicin de datos.

INSTRUCCIONES SELECT
Para describir un conjunto de datos mediante SQL, escriba una instruccin SELECT. Una instruccin SELECT contiene una
descripcin completa del conjunto de datos que desea obtener de una base de datos. Incluye lo siguiente:

Qu tablas contienen los datos.

Cmo se relacionan los datos de orgenes diferentes.

Qu campos o clculos proporcionarn los datos.

Criterios que los datos deben cumplir para ser incluidos.

Si se deben ordenar los datos y, en caso de ser as, cmo deben ordenarse.

CLUSULAS SQL
Al igual que una frase, una instruccin SQL tiene clusulas. Cada clusula realiza una funcin para la instruccin SQL. Algunas
clusulas son obligatorias en una instruccin SELECT. En la siguiente tabla se enumeran las clusulas SQL ms comunes.
Clusula
SQL

Funcin

Obligatoria

SELECT

Muestra una lista de los campos que contienen datos de inters.

FROM

Muestra las tablas que contienen los campos de la clusula 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 instruccin SQL que contiene funciones de agregado, muestra los campos que no se
resumen en la clusula SELECT.

Solo si estn estos


campos

HAVING

En una instruccin SQL que contiene funciones de agregado, especifica las condiciones que
se aplican a los campos que se resumen en la instruccin SELECT.

No

TRMINOS DE SQL
Cada clusula SQL consta de trminos, comparables a diferentes partes de la oracin. En la siguiente tabla se enumeran los
tipos de trminos de SQL.
Trmino de
SQL

Parte de la oracin
comparable

identificador

Definicin

Ejemplo

sustantivo

Nombre que se usa para identificar un objeto de la base


de datos, como el nombre de un campo.

Clientes.[Nmero de
telfono]

operador

verbo o adverbio

Palabra clave que representa o modifica una accin.

AS

constante

sustantivo

Valor que no cambia, como un nmero o un valor nulo


(NULL).

42

expresin

adjetivo

Combinacin de identificadores, operadores, constantes y


funciones que se evala como un valor nico.

> = Productos.[Precio
por unidad]

Volver al principio

Clusulas SQL bsicas: SELECT, FROM y WHERE


Una instruccin SQL tiene el formato general:
SELECT field_1
FROM table_1
WHERE criterion_1
;
NOTAS

Access pasa por alto los saltos de lnea en una instruccin SQL. Sin embargo, conviene usar una lnea para cada
clusula para que las instrucciones SQL sean ms fciles 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 clusula o solo en una lnea al final de la instruccin SQL.

UN EJEMPLO EN ACCESS
A continuacin se muestra el aspecto que podra tener en Access una instruccin SQL para una consulta de seleccin simple:

Clusula SELECT
Clusula FROM
Clusula WHERE
En este ejemplo de instruccin SQL, se indica "Seleccionar los datos almacenados en los campos Direccin de correo
electrnico y Empresa de la tabla llamada Contactos, especficamente aquellos registros en los cuales el valor del campo
Ciudad sea Seattle".
A continuacin se incluye un ejemplo y se describe cada clusula para mostrar cmo funciona la sintaxis de SQL.

CLUSULA SELECT
SELECT [E-mail Address], Company

sta es la clusula SELECT. Se compone de un operador (SELECT) seguido de dos identificadores ([Direccin de correo
electrnico] y Empresa).
Si un identificador contiene espacios o caracteres especiales (como "Direccin de correo electrnico"), se debe escribir entre
corchetes.
Una clusula 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.
La clusula SELECT siempre aparece antes que la clusula FROM en una instruccin SELECT.

CLUSULA FROM
FROM Contacts

sta es la clusula FROM. Se compone de un operador (FROM) seguido de un identificador (Contactos).


Una clusula FROM no enumera los campos que se van a seleccionar.

CLUSULA WHERE
WHERE City="Seattle"

sta es la clusula WHERE. Se compone de un operador (WHERE) seguido de un identificador (Ciudad="Seattle").


NOTA

A diferencia de las clusulas SELECT y FROM, la clusula WHERE no es un elemento obligatorio en una instruccin

SELECT.
Puede realizar muchas de las acciones que SQL permite mediante las clusulas SELECT, FROM y WHERE. En las secciones
incluidas al final de este artculo encontrar ms informacin acerca de cmo usar estas clusulas:
Ms informacin acerca de la clusula SELECT
Ms informacin acerca de la clusula FROM
Ms informacin acerca de la clusula WHERE

Volver al principio

Ordenar los resultados: ORDER BY


Al igual que Microsoft Office Excel, Access permite ordenar los resultados de la consulta en una hoja de datos. Adems, puede
especificar en la consulta cmo desea ordenar los resultados al ejecutar la consulta mediante una clusula ORDER BY. Si usa
una clusula ORDER BY, sta ser la ltima clusula en la instruccin SQL.
Una clusula 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 ordenacin.
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 adems por el valor indicado en el campo Direccin de
correo electrnico en orden ascendente. La clusula ORDER BY podra 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.


Para obtener ms informacin acerca de la clusula ORDER BY, vea el tema sobre la clusula ORDER BY.
Volver al principio

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 artculos ms caros
del inventario. Para ello, debe aplicar una funcin de agregado (funcin de agregado: funcin, como Suma, Cuenta, Promedio o
Var, que se utiliza para calcular totales.) a un campo en la clusula SELECT. Por ejemplo, si desea que la consulta muestre la
cantidad de direcciones de correo electrnico para cada una de las empresas, la clusula 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 expresin que desea emplear. Para
obtener ms informacin acerca de las funciones de agregado disponibles, vea el tema sobre las funciones de agregado de
SQL.

ESPECIFICAR CAMPOS QUE NO SE USAN EN UNA FUNCIN DE AGREGADO: CLUSULA GROUP


BY
Al usar las funciones de agregado, normalmente debe crear una clusula GROUP BY. Una clusula GROUP BY muestra una
lista de todos los campos a los que no se aplica una funcin de agregado. Si aplica las funciones de agregado a todos los
campos de una consulta, no es necesario crear la clusula GROUP BY.
Una clusula GROUP BY se incluye inmediatamente despus de la clusula WHERE o la clusula FROM si no hay una
clusula WHERE. La clusula GROUP BY muestra una lista de los campos que aparecen en la clusula SELECT.
Por ejemplo, siguiendo con el ejemplo anterior, si la clusula SELECT aplica una funcin de agregado a [Direccin de correo
electrnico] pero no a Empresa, la clusula GROUP BY sera similar a la siguiente:
GROUP BY Company

Para obtener ms informacin acerca de la clusula GROUP BY, vea el tema sobre la clusula GROUP BY.

LIMITAR LOS VALORES DE AGREGADO MEDIANTE LOS CRITERIOS DE AGRUPACIN:


CLUSULA HAVING
Si desea usar criterios para limitar sus resultados, pero el campo al que desea aplicar el criterio se usa en una funcin de
agregado, no puede usar una clusula WHERE. En su lugar, debe usar una clusula HAVING. La clusula HAVING funciona
como la clusula WHERE, pero se usa para los datos agregados.
Por ejemplo, suponga que usa la funcin COUNT (que devuelve un nmero de filas) con el primer campo de la clusula
SELECT:

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

Si desea que la consulta limite los resultados segn el valor de la funcin COUNT, no puede usar un criterio para dicho campo
en la clusula WHERE. Por el contrario, debe incluir el criterio en una clusula HAVING. Por ejemplo, si solo desea que la
consulta indique las filas en caso de que exista ms de una direccin de correo electrnico asociada con la empresa, la
clusula HAVING debera ser similar a la siguiente:
HAVING COUNT([E-mail Address])>1
NOTA

Una consulta puede incluir una clusula WHERE y una clusula HAVING: los criterios para los campos que no se usan

en una funcin de agregado se corresponden con la clusula WHERE y los criterios de los campos que se usan en las
funciones de agregado se corresponden con la clusula HAVING.
Para obtener ms informacin acerca de la clusula HAVING, vea el tema sobre la clusula HAVING.
Volver al principio

Combinar los resultados de la consulta: UNION


Si desea revisar todos los datos obtenidos en conjunto de varias consultas de seleccin 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 nmero 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 nmero de campos que cada una de las instrucciones de
seleccin.
NOTA

A efectos de una consulta de unin, los tipos de datos Texto y Nmero son compatibles.

Si usa el operador UNION, tambin puede usar la palabra clave ALL para especificar si los resultados de la consulta deben
incluir las filas duplicadas, si existe alguna.
La sintaxis bsica de SQL para una consulta de unin 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 garanta del servicio o de garanta del
producto, y si el producto o servicio se ofrece de forma exclusiva. Aunque en la tabla Productos se almacena informacin de
garanta del producto y en la tabla Servicios se almacena informacin de garanta del servicio, la informacin bsica es la
misma (si un producto o servicio determinado incluye una garanta de calidad). Puede usar una consulta de unin, como la que
se muestra a continuacin, 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 ms informacin acerca de cmo combinar instrucciones SELECT mediante el operador UNION, vea el tema
sobre cmo combinar los resultados de varias consultas de seleccin mediante una consulta de unin.
Volver al principio

Ms informacin acerca de la clusula SELECT


En una instruccin SELECT, la clusula 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 clusula SELECT. Si el nombre no contiene
espacios ni caracteres especiales (como signos de puntuacin), los corchetes son opcionales. Si el nombre contiene espacios o
caracteres especiales, debe usar los corchetes.
SUGERENCIA Un nombre que contiene espacios resulta ms fcil de leer y le permite ahorrar tiempo cuando disea

formularios e informes, pero es posible que luego deba escribir ms al especificar instrucciones SQL. Debe tener en cuenta
este dato cuando asigne un nombre a los objetos de la base de datos.
Si la instruccin SQL tiene dos o ms campos con el mismo nombre, debe agregar el nombre del origen de datos de cada
campo al nombre del campo en la clusula SELECT. Debe usar el mismo nombre para los orgenes de datos que ha usado en
la clusula FROM.

SELECCIONAR TODOS LOS CAMPOS

Si desea incluir todos los campos de un origen de datos, puede enumerar todos los campos individualmente en la clusula
SELECT o bien puede usar el carcter comodn 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 ms orgenes de datos en una instruccin SQL. Si usa el asterisco y hay varios orgenes 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.
Por ejemplo, suponga que desea seleccionar todos los campos de la tabla Pedidos, pero solo la direccin de correo electrnico
de la tabla de Contactos. La clusula SELECT podra ser similar a la siguiente:
SELECT Orders.*, Contacts.[E-mail Address]
NOTA

Realice un seguimiento cada vez que use el asterisco. Si ms adelante se agregan al origen de datos nuevos campos

que no estaban previstos, los resultados de la consulta podran no ser los deseados.

SELECCIONAR VALORES DISTINTOS


Si sabe que la instruccin seleccionar datos redundantes y prefiere ver solo los valores distintos, puede usar la palabra clave
DISTINCT en la clusula SELECT. Por ejemplo, suponga que cada uno de los clientes representa varios intereses diferentes y
algunos usan el mismo nmero de telfono. Si desea asegurarse de que solo se vea cada uno de los nmeros de telfono una
vez, la clusula 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 clusula SELECT. Un alias de campo es un nombre que se asigna a un campo en una consulta para que
las consultas sean ms fciles de leer. Por ejemplo, si desea seleccionar datos de un campo llamado txtTelClien y el campo
contiene los nmeros de telfono de los clientes, puede mejorar la legibilidad de los resultados mediante el uso de un alias de
campo en la instruccin SELECT de la siguiente manera:
SELECT [txtCustPhone] AS [Customer Phone]
NOTA

Debe usar un alias de campo si se usa una expresin en una clusula SELECT.

Seleccionar mediante una expresin

En ocasiones, es posible que necesite realizar clculos a partir de los datos o recuperar solo una parte de los datos de un
campo. Por ejemplo, suponga que desea obtener el ao de nacimiento de los clientes a partir de los datos del campo Fecha de
nacimiento de la base de datos. La clusula SELECT puede ser similar a la siguiente:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Esta expresin consta de la funcin DatePart y dos argumentos ("yyyy" (constante) y [BirthDate] (identificador)).
Puede usar cualquier expresin vlida como campo siempre que la expresin genere un valor nico al especificar un valor de
entrada nico.
Volver al principio

Ms informacin acerca de la clusula FROM


En una instruccin SELECT, la clusula FROM especifica las tablas o consultas que contienen los datos que usar la clusula
SELECT.
Supongamos que desea saber el nmero de telfono de un cliente especfico. Si la tabla que contiene el campo que almacena
estos datos se llama tblCliente, la clusula FROM sera 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
puntuacin), los corchetes son opcionales. Si el nombre contiene espacios o caracteres especiales, debe usar los corchetes.
SUGERENCIA Un nombre que contiene espacios resulta ms fcil de leer y le permite ahorrar tiempo cuando disea

formularios e informes, pero es posible que luego deba escribir ms 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 ORGENES DE DATOS


Puede usar un nombre diferente para hacer referencia a un origen de datos en una instruccin SELECT mediante un alias de
tabla en la clusula FROM. Un alias de tabla es el nombre que se asigna a un origen de datos en una consulta si se usa una
expresin como origen de datos o para facilitar la escritura y lectura de la instruccin SQL. Esto puede ser especialmente til si
el nombre del origen de datos es largo o difcil 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 clusula SELECT puede ser similar a la siguiente:
SELECT [tblCustomer].[ID], [tblOrder].[ID]

Al usar alias de tabla en la clusula FROM, puede facilitar la escritura de la consulta. As, la clusula FROM podra ser similar a:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]

A continuacin, puede usar estos alias de tabla en la clusula 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 instruccin SQL mediante el alias o

mediante el nombre completo del origen de datos.

COMBINAR DATOS RELACIONADOS


Cuando necesite combinar pares de registros de dos orgenes de datos en un registro nico en los resultados de una consulta,
puede realizar una combinacin. Una combinacin es una operacin de SQL que especifica cmo se relacionan dos orgenes
de datos y si se deben incluir los datos de un origen en caso de no haber ningn dato correspondiente del otro origen.
Para combinar la informacin de dos orgenes de datos, debe realizar una operacin de combinacin en el campo que tienen
en comn. Si los valores almacenados en este campo coinciden, los datos de los registros se combinan en los resultados.
Adems de la combinacin de datos, tambin se puede usar una combinacin para especificar si se incluirn registros de
cualquier tabla en caso de no haber ningn 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 ms
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 ningn registro correspondiente en la otra tabla, la clusula FROM puede ser similar a la siguiente (se ha agregado un salto
de lnea para mejorar la legibilidad):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

En Microsoft Office Access, las combinaciones se producen en la clusula FROM de una instruccin SELECT. Hay dos tipos de
combinaciones: combinaciones internas y combinaciones externas. En las siguientes secciones se explican estos dos tipos de
combinaciones.

COMBINACIONES INTERNAS
Las combinaciones internas son el tipo de combinacin ms comn. Cuando se ejecuta una consulta con una combinacin
interna, los nicos registros que se incluyen en los resultados de la consulta son los registros en los que existe un valor comn
en las dos tablas combinadas.
Una combinacin interna tiene la siguiente sintaxis (se ha agregado un salto de lnea 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 operacin INNER JOIN.
Parte

Descripcin

tabla1,
tabla2

Nombres de las tablas cuyos registros se combinan.

campo1,
campo2

Nombres de los campos que se combinan. Si no son numricos, los campos deben ser del mismo tipo de datos (tipo
de datos: caracterstica de un campo que determina el tipo de datos que puede albergar. Los tipos de datos son:
Booleano, Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y Variant (predeterminado).) y contener la misma
clase de datos, pero pueden tener nombres distintos.

opcomp

Cualquier operador de comparacin relacional: "=", "<", ">", "<=", ">=" o "<>".

COMBINACIONES EXTERNAS
Las combinaciones externas son similares a las combinaciones internas porque indican a una consulta cmo combinar
informacin a partir de dos orgenes. Son diferentes ya que tambin especifican si se incluirn datos donde no hay ningn valor
comn. Las combinaciones externas son direccionales: se puede especificar si incluir todos los registros del primer origen de
datos especificado en la combinacin (denominada combinacin izquierda o left join) o incluir todos los registros del segundo
origen de datos en la combinacin (denominada combinacin derecha o right join).
Una combinacin 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

Descripcin

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 (tipo de datos:
caracterstica de un campo que determina el tipo de datos que puede albergar. Los tipos de datos son: Booleano,
Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y Variant (predeterminado).) y contener la misma clase de
datos, pero pueden tener nombres distintos.

opcomp

Cualquier operador de comparacin relacional: "=", "<", ">", "<=", ">=" o "<>".

Para obtener ms informacin acerca de las combinaciones, vea el tema sobre cmo combinar tablas y consultas.
Volver al principio

Ms informacin acerca de la clusula WHERE


Si desea usar datos para limitar el nmero de registros devueltos en una consulta, puede usar criterios (criterios: condiciones
que se especifican para limitar los registros que se incluyen en el conjunto de resultados de una consulta o un filtro.) de
consulta en la clusula WHERE de una instruccin SELECT. Un criterio de consulta es similar a una frmula: consiste en una
cadena que puede incluir referencias de campos, operadores (operador: signo o smbolo que especifica el tipo de clculo que
se debe llevar a cabo en una expresin. Hay operadores matemticos, comparativos, lgicos y referenciales.) y
constantes (constante: valor que no ha sido calculado y que, por tanto, no vara. Por ejemplo, el nmero 210 y el texto "Ingresos
trimestrales" son constantes. Las expresiones, o los valores resultantes de ellas, no son constantes.). Los criterios de consulta
son un tipo de expresin (expresin: cualquier combinacin de operadores matemticos o lgicos, constantes, funciones y
nombres de campos, controles y propiedades que evala a un solo valor. Las expresiones pueden realizar clculos, manipular
caracteres o probar datos.).
En la siguiente tabla se muestran algunos criterios de ejemplo y se explica cmo funcionan.
Criterios

Descripcin

>25 y <50

Este criterio se aplica a un campo de nmero, 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 aos 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 segn el tipo de datos del campo al que
se apliquen y los requisitos especficos en cada caso. Algunos criterios son sencillos y usan operadores bsicos y constantes.
Otros son complejos y usan funciones y operadores especiales, e incluyen referencias de campo.

IMPORTANTE Si se usa un campo con una funcin de agregado, no podr especificar criterios para dicho campo en una

clusula WHERE. En su lugar, debe usar una clusula HAVING para especificar criterios para los campos agregados. Para
obtener ms informacin, vea la seccin
Trabajar con datos resumidos: GROUP BY y HAVING
.

Sintaxis de la clusula WHERE


Una clusula WHERE tiene la siguiente sintaxis bsica:
WHERE field = criterion

Por ejemplo, suponga que desea saber el nmero de telfono de un cliente, pero solo recuerda que el apellido del cliente es
Bagel. En lugar de buscar en todos los nmeros de telfono de la base de datos, puede usar una clusula WHERE para limitar
los resultados y encontrar ms fcilmente el nmero de telfono deseado. Si los apellidos se almacenan en un campo
denominado Apellidos, la clusula WHERE ser similar a la siguiente::
WHERE [LastName]='Bagel'
NOTA

No es necesario basar los criterios de la clusula WHERE en la equivalencia de valores. Puede usar otros operadores

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

USAR LA CLUSULA WHERE PARA COMBINAR ORGENES DE DATOS


En ocasiones, es posible que necesite combinar orgenes 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 Nmero 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 unin entre campos que tienen distintos tipos de datos. Para combinar los datos de dos orgenes de datos
basados en los valores de los campos que tienen distintos tipos de datos, debe crear una clusula 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 numrico de la tabla2). La clusula WHERE ser similar a la siguiente:
WHERE field1 LIKE field2

Para obtener ms informacin acerca de cmo crear un criterio para usar una clusula WHERE, vea el tema de ejemplos de
criterios de consulta.
Volver al principio

Access > Consultas

Combinar los resultados de varias consultas de seleccin mediante una


consulta de unin
Ocultar todo

Cuando desea revisar todos los datos devueltos por varias consultas de seleccin similares, como un conjunto combinado,
puede utilizar una consulta de unin.
En este artculo se muestra cmo crear una consulta de unin a partir de dos o ms consultas de seleccin existentes y se
explica asimismo cmo escribir una consulta de unin mediante el lenguaje de consulta estructurado (SQL).
Para completar los ejemplos de este artculo, debe disponer de conocimiento bsicos sobre cmo crear y ejecutar las consultas
de seleccin. Para obtener ms informacin sobre cmo crear consultas de seleccin, vea la seccin Vea tambin.

En este artculo.
Informacin general
Crear una consulta de unin
Sugerencias para el uso de consultas de unin

Informacin general

QU HACE UNA CONSULTA DE UNIN?


Una consulta de unin combina los conjuntos de resultados de varias consultas de seleccin similares.
Por ejemplo, supongamos que tiene una tabla en la que se almacena informacin acerca de los clientes, otra tabla en la que se
almacena informacin acerca de los proveedores y no existe ninguna relacin entre las dos tablas. Supongamos que ambas
tablas tienen campos en los que se almacena informacin de contacto y que desea ver toda la informacin de contacto de
ambas tablas a la vez.
Podra crear una consulta de seleccin (consulta de seleccin: consulta que formula una pregunta sobre los datos almacenados
en las tablas y devuelve un conjunto de resultados en forma de una hoja de datos sin modificar los datos de las tablas.) para
cada tabla con el fin de recuperar slo los campos con informacin de contacto, pero la informacin devuelta seguira estando

en dos ubicaciones independientes. Para combinar los resultados de dos o ms consultas de seleccin en un solo conjunto de
resultados, puede utilizar una consulta de unin.

REQUISITOS DE LAS CONSULTAS DE UNIN


Las consultas de seleccin que se combinan en una consulta de unin deben tener el mismo nmero de campos de resultados,
en el mismo orden y con tipos de datos idnticos o compatibles. Cuando se ejecuta una consulta de unin, los datos de cada
conjunto de campos correspondientes se combinan en un solo campo de resultados, de modo que los resultados de la consulta
tienen el mismo nmero de campos que cada una de las instrucciones SELECT.
NOTA

Para las consultas de unin, los tipos de datos Texto y Nmero son compatibles.

Una consulta de unin es especfica de SQL. Las consultas especficas de SQL no se pueden mostrar en la vista Diseo y, por
lo tanto, deben escribirse directamente en SQL. En Microsoft Office Access 2007, se usa la ficha de objeto Vista SQL para
escribir consultas especficas de SQL, incluidas las consultas de unin.
SUGERENCIA Todas las consultas pueden expresarse mediante instrucciones SQL. La mayora de las consultas tambin se

pueden expresar en la cuadrcula de diseo (cuadrcula de diseo: cuadrcula utilizada para disear una consulta o un filtro en
la vista Diseo de consulta o en la ventana Filtro u orden avanzado. Para las consultas, esta cuadrcula se conoca antes como
la cuadrcula QBE.), que, en caso de estar disponible, es un entorno ms fcil para la creacin de consultas. Cuando se crea
una consulta mediante la cuadrcula de diseo, se puede cambiar en todo momento a la vista SQL para ver la instruccin SQL
que se procesa cuando se ejecuta la consulta. Se recomienda que vea las consultas en la vista SQL para familiarizarse con
SQL y ampliar sus conocimientos sobre el funcionamiento de las consultas. En algunos casos, la vista SQL tambin puede
resultar til para solucionar problemas relacionados con una consulta que no devuelve los resultados previstos.

SINTAXIS SQL DE UNA CONSULTA DE UNIN


En una consulta de unin, cada consulta de seleccin (tambin denominada instruccin SELECT) tiene una clusula SELECT y
una clusula FROM, y tambin puede tener una clusula WHERE. Una clusula SELECT muestra los campos que contienen
los datos que se desean recuperar; una clusula FROM muestra las tablas que contienen esos campos; y una clusula
WHERE muestra los criterios de esos campos. Las instrucciones SELECT se combinan en una consulta de unin mediante la
palabra clave UNION.
sta es la sintaxis SQL bsica de una consulta de unin que combina dos consultas de seleccin:
SELECT field_1[, field_2,]
FROM table_1[, table_2,]
UNION [ALL]
SELECT field_a[, field_b,...]

FROM table_a[, table_b,];

Por ejemplo, supongamos que tiene una tabla denominada Products (Productos) y otra tabla denominada Services (Servicios).
Ambas tablas tienen campos que contienen el nombre del producto o servicio, el precio, la garanta y si el producto o servicio
se ofrece de forma exclusiva. Si bien en la tabla Products se almacena informacin de garanta (warranty) y en la tabla Services
se almacena informacin de garanta (guarantee), la informacin bsica es la misma (si un determinado producto o servicio
viene acompaado de una garanta de calidad). Puede utilizar una consulta de unin, como la que figura a continuacin, 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;

Examinemos lnea por lnea el anterior ejemplo de sintaxis.


SELECT name, price, warranty_available, exclusive_offer Se trata de una clusula SELECT, que se utiliza

para iniciar una consulta de seleccin. La palabra SELECT va seguida de una lista de identificadores que indican los
campos de los que se desea recuperar datos. Una clusula SELECT siempre debe enumerar al menos un campo.
Esta clusula SELECT enumera los identificadores de campo name, price, warranty_available y exclusive_offer.
FROM Products Se trata de una clusula FROM. Una clusula FROM va detrs de una clusula SELECT y

juntas forman una instruccin SELECT bsica. La palabra FROM va seguida de una lista de identificadores que
indican las tablas que contienen los campos que se enumeran en la clusula SELECT. Una clusula FROM siempre
debe enumerar al menos una tabla. Esta clusula FROM enumera el identificador de tabla Products.
UNION ALL Es la palabra clave UNION y la palabra clave opcional ALL. UNION indica que los resultados de la

instruccin SELECT que precede a UNION se combinarn con los resultados de la instruccin SELECT que figura
despus de UNION.
Cuando se utiliza la palabra clave ALL, no se quitan las filas duplicadas del conjunto combinado generado por la
unin. Esto puede mejorar considerablemente el rendimiento de la consulta porque Access no tiene que comprobar si
hay filas duplicadas en los resultados. La palabra clave ALL debe utilizarse si se cumple alguna de las condiciones
siguientes:

Tiene la certeza de que las consultas de seleccin no generarn filas duplicadas.

No importa si los resultados tienen filas duplicadas.

Desea ver las filas duplicadas.

En este ejemplo, se utiliza la palabra clave ALL porque no se espera que se devuelvan filas duplicadas y no hay
ninguna razn para no mostrar las filas duplicadas si las hay.

SELECT name, price, guarantee_available, exclusive_offer Es la segunda clusula SELECT, que inicia la
segunda instruccin SELECT en la consulta de unin. Cuando se escribe una consulta de unin, los campos de las
instrucciones SELECT deben corresponderse, lo cual significa que las instrucciones SELECT deben tener el mismo
nmero de campos, los campos que comparten datos comunes deben aparecer en el mismo orden en la clusula y
deben tener tipos de datos idnticos o compatibles, tal y como se muestra en el ejemplo. Los campos deben
corresponderse de modo que se pueden combinar en los resultados de la consulta.
NOTA

Los nombres de los campos en los resultados de una consulta de unin proceden de la primera clusula

SELECT. Por lo tanto, en el ejemplo, los datos del campo "warranty_available" y del campo "guarantee_available" se
denominan "warranty_available" en los resultados de la consulta.

FROM Services Es la segunda clusula FROM, que completa la segunda instruccin SELECT en la consulta de
unin. A diferencia de los campos en las clusulas SELECT, no hay restricciones en las tablas de las clusulas FROM
de una consulta de unin. Se puede crear una consulta de unin que utilice las mismas tablas en cada clusula
FROM. Puede haber un nmero distinto de tablas en las clusulas FROM. En el ejemplo, cada clusula FROM tiene
slo una tabla.
Volver al principio

Crear una consulta de unin


Existen dos mtodos bsicos para crear una consulta de unin:

Crear las consultas de seleccin de los componentes en la vista Diseo (vista Diseo: vista que muestra el diseo
de los siguientes objetos de base de datos: tablas, consultas, formularios, informes y macros. En la vista Diseo,
puede crear objetos de base de datos nuevos y modificar el diseo de otros existentes.) de la consulta y, a
continuacin, combinar estas consultas en una consulta de unin.

Crear toda la consulta de unin directamente en la vista SQL (vista SQL: ficha de objeto que muestra la instruccin
SQL para la consulta activa o que se usa para crear una consulta especfica de SQL (unin, paso a travs o definicin
de datos). Cuando se crea una consulta en la vista Diseo, se construye el SQL equivalente en la vista SQL.).

En la mayora de los casos, debe crear primero las consultas de seleccin y, a continuacin, combinarlas en una consulta de
unin. En Office Access 2007, la vista Diseo proporciona una interfaz de usuario grfica fcil de usar para crear consultas de
seleccin y las instrucciones SQL de estas consultas se pueden copiar y pegar en una consulta de unin.
Sin embargo, si no le supone ningn esfuerzo escribir instrucciones SQL o si desea obtener ms experiencia escribiendo
instrucciones SQL, puede que prefiera crear la consulta de unin directamente en la vista SQL.

Qu desea hacer?
Crear primero las consultas de seleccin en la vista Diseo y, a continuacin, combinarlas
Crear la consulta de unin directamente en la vista SQL

CREAR PRIMERO LAS CONSULTAS DE SELECCIN EN LA VISTA DISEO Y, A CONTINUACIN,


COMBINARLAS
En este mtodo, se crea cada consulta de seleccin utilizando la vista Diseo y, a continuacin, se combinan las consultas de
seleccin utilizando la vista SQL.

Crear cada consulta de seleccin en la vista Diseo


1.

En el grupo Otros de la ficha Crear, haga clic en Diseo de consulta.

2.

En el cuadro de dilogo Mostrar tabla, haga doble clic en la tabla con los campos que desee incluir.
La tabla se agrega a la ventana de diseo de la consulta.
NOTA

Aunque puede incluir varias tablas o consultas en una consulta de seleccin, en este procedimiento se

supone que cada una de las consultas de seleccin incluye datos de una sola tabla.
3.

Cierre el cuadro de dilogo Mostrar tabla.

4.

En la ventana de diseo de la consulta, haga doble clic en cada uno de los campos que desee incluir.
Al seleccionar los campos, asegrese de agregar el mismo nmero de campos, en el mismo orden, que a las otras
consultas de seleccin. Fjese en los tipos de datos de los campos y asegrese de que son compatibles con los tipos
de datos de los campos en la misma posicin de las otras consultas que est combinando.
Por ejemplo, si la primera consulta de seleccin tiene cinco campos y el primer campo contiene datos de fecha y hora,
asegrese de que las dems consultas de seleccin que est combinando tambin tienen cinco campos y que el
primero contiene datos de fecha y hora, y as sucesivamente.

5.

De manera opcional, agregue criterios a los campos escribiendo las expresiones (expresin: cualquier
combinacin de operadores matemticos o lgicos, constantes, funciones y nombres de campos, controles y
propiedades que evala a un solo valor. Las expresiones pueden realizar clculos, manipular caracteres o probar
datos.) apropiadas en la fila Criterios de la cuadrcula de campo.

6.

Despus de agregar los campos y criterios, debe ejecutar la consulta de seleccin y revisar sus resultados.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

7.

Cambie la consulta a la vista Diseo.

8.

Guarde la consulta de seleccin y djela abierta.

9.

Repita este procedimiento para cada una de las consultas de seleccin que desee combinar.

Combinar las consultas de seleccin en la vista SQL


1.

En el grupo Otros de la ficha Crear, haga clic en Diseo de consulta.


Una nueva consulta se abre en la vista Diseo.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Consulta, haga clic en Unin.


La ventana de diseo de la consulta est oculta y se muestra la ficha de objeto de la vista SQL, que est vaca.

4.

Haga clic en la ficha de la primera consulta de seleccin que desee combinar en la consulta de unin.

5.

En la ficha Inicio, en el grupo Vistas, haga clic en Vista y, a continuacin, haga clic en Vista SQL.
Se muestra la instruccin SQL de la consulta de seleccin.

6.

Copie la instruccin SQL de la consulta de seleccin.

7.

Haga clic en la ficha de la consulta de unin que empez a crear en el paso 1 de este procedimiento.

8.

Pegue la instruccin SQL de la consulta de seleccin en la ficha de objeto de la vista SQL de la consulta de unin.

9.

Elimine el signo de punto y coma (;) que se encuentra al final de la instruccin SQL de la consulta de seleccin.

10.

Presione ENTRAR para bajar el cursor una lnea y, a continuacin, escriba UNION en la nueva lnea.
De manera opcional, escriba un espacio seguido de la palabra clave All y, a continuacin, presione de nuevo
ENTRAR.

11.

Haga clic en la ficha de la siguiente consulta de seleccin que desee combinar en la consulta de unin.

12.

Repita los pasos de 5 a 11 de este procedimiento hasta que haya copiado y pegado todas las instrucciones SQL
de las consultas de seleccin en la ventana de la vista SQL de la consulta de unin. No elimine el signo de punto y
coma ni escriba nada despus de la instruccin SQL de la ltima consulta de seleccin.

13.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

Los resultados de la consulta de unin aparecen en la vista Hoja de datos (vista Hoja de datos: vista que muestra
datos de una tabla, un formulario, una consulta, una vista o un procedimiento almacenado con formato de filas y
columnas. En la vista Hoja de datos, puede editar campos, buscar y agregar o eliminar datos.).

CREAR LA CONSULTA DE UNIN DIRECTAMENTE EN LA VISTA SQL


En el siguiente procedimiento se indican los pasos que debe dar para crear una consulta de unin bsica en la vista SQL.
1.

En el grupo Otros de la ficha Crear, haga clic en Diseo de consulta.


Una nueva consulta se abre en la vista Diseo.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Consulta, haga clic en Unin.


La ventana de diseo de la consulta est oculta y se muestra la ficha de objeto de la vista SQL, que est vaca.

4.

En la ficha de objeto Vista SQL, escriba la palabra SELECT, seguida de una lista de los campos de la primera
tabla o del primer conjunto de tablas que desee incluir en la consulta. Utilice comas para separar los nombres de los
campos. Cuando termine de escribir esa lista, presione ENTRAR.

5.

Escriba FROM, seguido de los nombres de las tablas que contienen los campos enumerados en la anterior
clusula SELECT y, a continuacin, presione ENTRAR.

6.

Para especificar un criterio para un campo de una de estas tablas, escriba WHERE, seguido del nombre del
campo, un operador de comparacin (normalmente, el signo de igualdad =) y el criterio. Puede agregar ms criterios al
final de la clusula WHERE mediante las palabras clave AND y OR. Cuando termine de especificar los criterios,
presione ENTRAR.

7.

Escriba UNION. Si no desea que la consulta quite las filas duplicadas de los resultados, escriba un espacio,
seguido de la palabra clave ALL y, a continuacin, presione ENTRAR.

8.

Escriba SELECT, seguido de una lista de los campos de la siguiente tabla o del siguiente conjunto de tablas que
desee incluir en la consulta. Estos campos deben corresponder a los campos incluidos en la primera clusula SELECT
y deben estar en el mismo orden. Utilice comas para separar los nombres de los campos. Cuando termine de escribir
los nombres de campo, presione ENTRAR.

9.

Escriba FROM, seguido del nombre de la siguiente tabla o del siguiente conjunto de tablas que desee incluir en la
consulta y, a continuacin, presione ENTRAR.

10.

Para especificar un criterio para un campo de una de estas tablas, escriba WHERE, seguido del nombre del
campo, un operador de comparacin (normalmente, el signo de igualdad =) y el criterio. Puede agregar ms criterios al

final de la clusula WHERE mediante la palabra clave AND. Cuando termine de especificar los criterios, presione
ENTRAR.
11.

Para incluir instrucciones SELECT adicionales en la consulta de unin, repita los pasos de 7 a 10.

12.

Escriba ; para indicar el final de la consulta.

13.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.


Los resultados de la consulta de unin aparecen en la vista Hoja de datos (vista Hoja de datos: vista que muestra
datos de una tabla, un formulario, una consulta, una vista o un procedimiento almacenado con formato de filas y
columnas. En la vista Hoja de datos, puede editar campos, buscar y agregar o eliminar datos.).

Volver al principio

Sugerencias para el uso de consultas de unin

Si desea poder distinguir qu filas provienen de qu tabla, puede agregar una cadena de texto como un campo a
cada una de las instrucciones SELECT. Por ejemplo, si una instruccin SELECT recupera campos de una tabla
denominada Products (Productos) y otras instrucciones SELECT recuperan campos de una tabla denominada
Services (Servicios), puede agregar la cadena "Product" (Producto) como un campo al final de la primera instruccin y
"Service" (Servicio) al final de la segunda instruccin. Tambin puede asignar un alias de campo (por ejemplo, "type"
(tipo)) a las cadenas mediante la palabra clave AS, tal y como se muestra en el ejemplo siguiente:
SELECT field1, field2, ... "Product" AS type
SELECT field1, field2, ... "Service" AS type

Los resultados de la consulta incluiran un campo denominado "type" que muestra si la fila proviene de la tabla de
productos o la tabla de servicios.

Cada palabra clave UNION combina las instrucciones SELECT que figuran inmediatamente antes y despus de la
misma. Si se utiliza la palabra clave ALL con algunas de las palabras clave UNION en la consulta, los resultados
incluirn las filas duplicadas de los pares de instrucciones SELECT combinadas mediante UNION ALL pero no
incluirn las filas duplicadas de las instrucciones SELECT combinadas mediante UNION sin la palabra clave ALL.

Aunque el nmero, los tipos de datos y el orden de los campos en las consultas de seleccin que se combinan en
una consulta de unin deben corresponderse, puede utilizar expresiones, como clculos o subconsultas, para hacer
que se correspondan. Por ejemplo, puede hacer coincidir un campo de ao de dos caracteres con un campo de ao
de cuatro caracteres mediante la funcin Der para extraer los dos ltimos dgitos del ao de cuatro caracteres.

Si desea utilizar los resultados de una consulta de unin para crear una nueva tabla, puede utilizar la consulta de
unin como entrada para una nueva consulta de seleccin y, a continuacin, utilizar esa consulta de seleccin como
base de una consulta de creacin de tabla (consulta de creacin de tabla: consulta (instruccin SQL) que crea una

nueva tabla y, posteriormente, crea registros (filas) en ella copiando registros de una tabla existente o del resultado de
una consulta.):

1.

Cree y guarde la consulta de unin.

2.

En el grupo Otros de la ficha Crear, haga clic en Diseo de consulta.

3.

En el cuadro de dilogo Mostrar tabla, haga clic en la pestaa Consultas.

4.

Haga doble clic en la consulta de unin y, a continuacin, cierre el cuadro de dilogo


Mostrar tabla.
Si aparece una advertencia de seguridad en la barra de mensajes, las consultas de accin, como

NOTA

las consultas de creacin de tabla, pueden estar deshabilitadas. Para habilitar las consultas de accin de
modo que se ejecuten, haga clic en Opciones en la barra de mensajes y, a continuacin, haga clic en
Habilitar este contenido en el cuadro de dilogo Opciones de seguridad de Microsoft Office.
5.

En la cuadrcula de diseo de consultas, en la ficha de objeto de la consulta de unin, haga


doble clic en el asterisco (*) para usar todos los campos de la consulta de unin para crear una nueva
tabla.
O bien,
Haga doble clic en cada campo que desee utilizar en la nueva tabla.

6.

En el grupo Tipo de consulta de la ficha Diseo, haga clic en Crear tabla.

7.

En el cuadro de dilogo Crear tabla, escriba un nombre para la nueva tabla, especifique de
manera opcional otra base de datos en la que se va a crear la tabla y, a continuacin, haga clic en
Aceptar.

8.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.


Puede utilizar una consulta de unin para realizar una combinacin externa (combinacin externa: combinacin en

la que los registros coincidentes de dos tablas se unen en un nico registro en los resultados de la consulta y, al
menos, una tabla aporta todos sus registros, incluso si los valores del campo combinado no coinciden con los de la
otra tabla.) completa. Una combinacin externa completa no limita las filas que se devuelven de cualquiera de las
tablas combinadas sino que combina las filas basndose en los valores del campo de combinacin.
Para utilizar una consulta de unin para realizar una combinacin externa completa:

Cree una consulta que tenga una combinacin externa izquierda en el campo que desee usar para una
combinacin externa completa.

En la ficha Inicio, en el grupo Vistas, haga clic en Vista y, a continuacin, haga clic en Vista SQL.

Presione CTRL+C para copiar el cdigo SQL.

Elimine el punto y coma al final de la clusula FROM y, a continuacin, presione ENTRAR.

Escriba UNION y, a continuacin, presione ENTRAR.


NOTA

No utilice la palabra clave ALL cuando utilice una consulta de unin para realizar una combinacin

externa completa.

Presione CTRL+V para pegar el cdigo SQL copiado en el paso 3.

En el cdigo que acaba de pegar, cambie LEFT JOIN a RIGHT JOIN.

Elimine el punto y coma al final de la segunda clusula FROM y, a continuacin, presione ENTRAR.

Agregue una clusula WHERE que especifique que el valor del campo de combinacin es NULL en la
primera tabla de la clusula FROM (tabla a la izquierda).
Por ejemplo, si la clusula FROM es:
FROM Products RIGHT JOIN [Order Details]
ON Products.ID = [Order Details].[Product ID]

Agregue la siguiente clusula WHERE:


WHERE Products.ID IS NULL

Escriba un punto y coma (;) al final de la clusula WHERE para indicar el final de la consulta de unin.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

Volver al principio
Access > Disear aplicaciones

Crear o modificar tablas o ndices mediante una consulta de definicin


de datos
Ocultar todo

Puede crear y modificar tablas, restricciones, ndices y relaciones. Para ello, puede escribir consultas de definicin de datos en
la vista SQL.

En este artculo se explican las consultas de definicin de datos y se muestra cmo usar esas consultas para crear tablas,
ndices, restricciones y relaciones. Este artculo tambin le puede ayudar a decidir cundo debe usar una consulta de definicin
de datos.
NOTA

No puede usar estos procedimientos en una base de datos web.

En este artculo:
Informacin general
Crear o modificar una tabla
Crear un ndice
Crear una restriccin o una relacin

Informacin general
A diferencia de otras consultas, una consulta de definicin de datos no recupera datos. En cambio, una consulta de definicin
de datos usa el lenguaje de definicin de datos para crear, modificar o eliminar objetos de base de datos.
NOTA

El lenguaje de definicin de datos (DDL) forma parte del Lenguaje de consulta estructurado (SQL).

Las consultas de definicin de datos pueden resultar muy tiles. Puede eliminar y volver a crear partes del esquema de la base
de datos regularmente con tan solo ejecutar algunas consultas. Considere la posibilidad de usar una consulta de definicin de
datos si est familiarizado con las instrucciones SQL y tiene previsto eliminar y volver a crear tablas, restricciones, ndices y
relaciones concretos.
ADVERTENCIA El uso de consultas de definicin de datos para modificar objetos de base de datos puede ser arriesgado

porque las acciones no van acompaadas de cuadros de dilogo de confirmacin. Si comete un error, puede perder datos o
cambiar el diseo de una tabla sin darse cuenta. Tenga cuidado cuando use una consulta de definicin de datos para modificar
objetos de la base de datos. Si no es responsable de mantener la base de datos que va a usar, debe consultar al administrador
de esa base de datos antes de ejecutar una consulta de definicin de datos.
IMPORTANTE Haga una copia de seguridad de todas las tablas involucradas antes de ejecutar una consulta de definicin de

datos.

PALABRAS CLAVE DE DDL


Palabra clave

Uso

CREATE

Crea un ndice o una tabla que an no existe.

ALTER

Modifica una tabla o una columna existente.

DROP

Elimina una tabla, columna o restriccin existente.

ADD

Agrega una columna o una restriccin a una tabla.

COLUMN

Se usa con ADD, ALTER o DROP.

CONSTRAINT

Se usa con ADD, ALTER o DROP.

INDEX

Se usa con CREATE.

TABLE

Se usa con ALTER, CREATE o DROP.

Volver al principio

Crear o modificar una tabla


Para crear una tabla, puede utilizar un comando CREATE TABLE. Un comando CREATE TABLE tiene la siguiente sintaxis:
CREATE TABLE table_name
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

Los nicos elementos necesarios de un comando CREATE TABLE son el propio comando CREATE TABLE y el nombre de la
tabla, aunque por lo general es posible que desee definir algunos campos u otros aspectos de la tabla. Vea este sencillo
ejemplo.
Supongamos que desea crear una tabla para almacenar el nombre, el ao y el precio de los vehculos usados que est
considerando comprar. Desea permitir hasta 30 caracteres para el nombre y 4 caracteres para el ao. Si desea utilizar una
consulta de definicin de datos para crear la tabla, siga este procedimiento:
NOTA

Primero debe habilitar el contenido de la base de datos para poder ejecutar la consulta de definicin de datos:
En la Barra de mensajes, haga clic en Habilitar contenido.

CREAR UNA TABLA


1.

En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos.


La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.

4.

Escriba la siguiente instruccin SQL:

CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)


5.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

MODIFICAR UNA TABLA


Para modificar una tabla, utilice un comando ALTER TABLE. Puede utilizar un comando ALTER TABLE para agregar, modificar
o quitar columnas o restricciones. Un comando ALTER TABLE tiene la siguiente sintaxis:
ALTER TABLE table_name predicate

donde predicate puede ser cualquiera de los siguientes valores:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Supongamos que desea agregar un campo de texto de 10 caracteres para almacenar informacin sobre el estado de cada
vehculo. Puede seguir este procedimiento:
1.

En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos.


La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.

4.

Escriba la siguiente instruccin SQL:


ALTER TABLE Cars ADD COLUMN Condition TEXT(10)

5.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

Volver al principio

Crear un ndice
Para crear un ndice en una tabla existente, se utiliza un comando CREATE INDEX. Un comando CREATE INDEX tiene la
siguiente sintaxis:

CREATE [UNIQUE] INDEX index_name


ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

Los nicos elementos necesarios son el comando CREATE INDEX, el nombre del ndice, el argumento ON, el nombre de la
tabla que contiene los campos que se van a indizar y la lista de los campos que se van a incluir en el ndice.
El argumento DESC hace que el ndice se cree en orden descendente, lo cual puede resultar til si se ejecutan

frecuentemente consultas que busquen valores superiores para el campo indizado o que ordenen el campo indizado
en orden descendente. De forma predeterminada, los ndices se crean en orden ascendente.
El argumento WITH PRIMARY establece el campo indizado o los campos indizados como clave principal (clave

principal: uno o ms campos (columnas) cuyos valores identifican de manera exclusiva cada registro de una tabla.
Una clave principal no puede permitir valores Nulo y debe tener siempre un ndice exclusivo. Una clave principal se
utiliza para relacionar una tabla con claves externas de otras tablas.) de la tabla.
El argumento WITH DISALLOW NULL hace que el ndice requiera que se escriba un valor para el campo

indizado; es decir, no se permiten valores nulos.


Supongamos que tiene una tabla denominada Cars (Vehculos) con campos en los que se almacenan el nombre, el ao, el
precio y el estado de los vehculos usados que est considerando comprar. Supongamos asimismo que la tabla ha adquirido un
tamao considerable y que incluye con frecuencia el campo de ao en las consultas. Puede crear un ndice en el campo de ao
para que las consultas devuelvan resultados ms rpidamente mediante el procedimiento siguiente:
1.

En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos.


La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.

4.

Escriba la siguiente instruccin SQL:


CREATE INDEX YearIndex ON Cars (Year)

5.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

Volver al principio

Crear una restriccin o una relacin

Una restriccin establece una condicin lgica que debe cumplir un campo o una combinacin de campos cuando se insertan
valores. Por ejemplo, una restriccin UNIQUE impide que el campo restringido acepte un valor que duplique un valor existente
para el campo.
Una relacin es un tipo de restriccin que hace referencia a los valores de un campo o una combinacin de campos de otra
tabla para determinar si un valor se puede insertar en el campo restringido o la combinacin de campos restringidos. No es
necesario usar una palabra clave especial para indicar que una restriccin es una relacin.
Para crear una restriccin, se utiliza una clusula CONSTRAINT en un comando CREATE TABLE o ALTER TABLE. Hay dos
tipos de clusulas CONSTRAINT: clusulas para crear una restriccin en un solo campo y clusulas para crear una restriccin
en varios campos.

RESTRICCIONES DE UN SOLO CAMPO


Una clusula CONSTRAINT de un solo campo figura inmediatamente despus de la definicin del campo que restringe y tiene
la siguiente sintaxis:
CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Supongamos que tiene una tabla denominada Cars (Vehculos) con campos en los que se almacenan el nombre, el ao, el
precio y el estado de los vehculos usados que est considerando comprar. Supongamos asimismo que con frecuencia olvida
especificar un valor para el estado del vehculo y que siempre desea registrar esta informacin. Puede crear una restriccin en
el campo de estado que evite que ese campo se quede en blanco, siguiendo este procedimiento:
1.

En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos.


La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.

4.

Escriba la siguiente instruccin SQL:


ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL

5.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

Ahora supongamos que, despus de un tiempo, se da cuenta de que hay muchos valores similares en el campo del estado de
los vehculos que deberan ser iguales. Por ejemplo, algunos de los vehculos tienen como valor de estado pobre y otros tienen
el valor deficiente.
NOTA

Si desea seguir con los procedimientos restantes, agregue algunos datos simulados a la tabla Cars que cre en los

pasos anteriores.
Despus de limpiar los valores para que sean ms coherentes, podr crear una tabla denominada CarCondition
(EstadoVehculo) con un campo denominado Condition (Estado), que contenga todos los valores que desee utilizar para el
estado de los vehculos:
1.

En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos.


La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.

4.

Escriba la siguiente instruccin SQL:


CREATE TABLE CarCondition (Condition TEXT(10))

5.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

6.

Cree una clave principal para la tabla mediante una instruccin ALTER TABLE:
ALTER TABLE CarCondition ALTER COLUMN Condition TEXT CONSTRAINT CarConditionPK PRIMARY KEY

7.

Para insertar los valores del campo Condition (Estado) de la tabla Cars (Vehculos) en la nueva tabla CarCondition
(EstadoVehculo), escriba la siguiente instruccin SQL en la ficha de objeto de la vista SQL:
INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;
NOTA

La instruccin SQL en este paso es una consulta de datos anexados (consulta de datos anexados: consulta

de accin que agrega los registros del conjunto de resultados de una consulta al final de una tabla existente.). A
diferencia de las consultas de definicin de datos, las consultas de datos anexados terminan con un punto y coma.
8.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

CREAR UNA RELACIN MEDIANTE UNA RESTRICCIN

Para requerir que cualquier nuevo valor que se inserte en el campo Condition (Estado) de la tabla Cars (Vehculos) coincida con
un valor del campo Condition (Estado) de la tabla CarCondition (EstadoVehculo), puede crear una relacin entre CarCondition
y Cars en el campo Condition, siguiendo este procedimiento:
1.

En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos.


La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.

4.

Escriba la siguiente instruccin SQL:


ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES
CarCondition (Condition)

5.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

RESTRICCIONES DE VARIOS CAMPOS


Una clusula CONSTRAINT de varios campos solo se puede usar fuera de una clusula de definicin de campo y tiene la
siguiente sintaxis:
CONSTRAINT constraint_name
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Examinemos otro ejemplo con la tabla Cars (Vehculos). Supongamos que desea asegurarse de que no haya dos registros en
la tabla Cars con el mismo conjunto de valores para el nombre, el ao, la condicin y el precio. Puede crear una restriccin
UNIQUE que se aplique a estos campos mediante este procedimiento:
1.

En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Definicin de datos.

La cuadrcula de diseo est oculta y se muestra la ficha de objeto de la vista SQL.


4.

Escriba la siguiente instruccin SQL:


ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (name, year, condition, price)

5.

En el grupo Resultados de la ficha Diseo, haga clic en Ejecutar.

Volver al principio

Vea tambin

Conceptos bsicos del diseo de una base de datos

Introduccin a Access SQL

Introduccin a la programacin de Access

Access > Consultas

Facilitar la lectura de datos de resumen mediante una consulta de


tabla de referencias cruzadas
Ocultar todo

Cuando desee reestructurar los datos de resumen para facilitar su lectura y comprensin, considere la posibilidad de usar una
consulta de tabla de referencias cruzadas.
Una consulta de tabla de referencias cruzadas calcula una suma, un promedio u otra funcin de agregado (funcin de
agregado: funcin, como Suma, Cuenta, Promedio o Var, que se utiliza para calcular totales.) y, despus, agrupa los resultados
en dos conjuntos de valores: uno en la parte lateral de la hoja de datos y el otro en la parte superior.
NOTA

No se puede usar una consulta de tabla de referencias cruzadas en un explorador web. Si desea ejecutar una

consulta de tabla de referencias cruzadas en una base de datos web, primero debe abrir la base de datos con Access.

En este artculo
Informacin general
Crear una consulta de tabla de referencias cruzadas
Usar rangos o intervalos para los encabezados
Solicitar un parmetro para limitar los encabezados de fila
Reemplazar los valores Null por ceros

Sugerencias para consultas de tabla de referencias cruzadas

Informacin general
Una consulta de tabla de referencias cruzadas es un tipo de consulta de seleccin (consulta de seleccin: consulta que formula
una pregunta sobre los datos almacenados en las tablas y devuelve un conjunto de resultados en forma de una hoja de datos
sin modificar los datos de las tablas.). Al ejecutar una consulta de tabla de referencias cruzadas, los resultados se muestran en
una hoja de datos que tiene una estructura diferente a la de otros tipos de hojas de datos.
La estructura de una consulta de tabla de referencias cruzadas puede resultar ms fcil de leer que una consulta de seleccin
simple con los mismos datos, como se muestra en la siguiente ilustracin.

En esta consulta de seleccin, los datos de resumen estn agrupados verticalmente por empleado y categora.
Una consulta de tabla de referencias cruzadas puede mostrar los mismos datos, pero agrupados horizontal y verticalmente
para reducir el tamao de la hoja de datos y facilitar su lectura.

CREAR CONSULTAS DE TABLA DE REFERENCIAS CRUZADAS


Cuando cree una consulta de tabla de referencias cruzadas, deber especificar los campos que contienen los encabezados de
fila, el campo que contiene los encabezados de columna y el campo que contiene los valores que se van a resumir. Slo puede
usar un campo cuando especifique los encabezados de columna y los valores que se van a resumir, y tres campos como
mximo cuando especifique los encabezados de fila.
SUGERENCIA Puede usar tambin una expresin para generar los encabezados de fila, los encabezados de columna y los

valores que se van a resumir.

Las columnas (hasta tres) de este lado contienen los encabezados de fila. Los nombres de los campos que se usan como
encabezados de fila aparecen en la fila superior de estas columnas.
Aqu se muestran los encabezados de fila. El nmero de filas de la hoja de datos de tabla de referencias cruzadas puede
aumentar rpidamente si se usan varios campos de encabezado de fila, ya que se muestra cada combinacin de encabezados
de fila.
Las columnas de este lado contienen los encabezados de columna y los valores de resumen. Tenga en cuenta que el nombre
del campo de encabezado de columna no aparece en la hoja de datos.
Aqu se muestran los valores de resumen.

MTODOS PARA CREAR UNA CONSULTA DE TABLA DE REFERENCIAS CRUZADAS


Usar el Asistente para consultas de referencias cruzadas Este asistente suele ser la forma ms rpida y sencilla de crear
una consulta de tabla de referencias cruzadas. Realiza automticamente la mayor parte del trabajo, pero hay algunas opciones
que no proporciona.
El asistente presenta las siguientes ventajas:

Es fcil de usar. Para usarlo, incielo y responda a una serie de preguntas autoguiadas.

Puede agrupar automticamente fechas en intervalos. Si usa un campo que contiene datos de fecha y hora
para los encabezados de columna, el asistente le ayudar tambin a agrupar las fechas en intervalos, como meses o
trimestres.
SUGERENCIA Si desea usar valores de un campo de fecha y hora para los encabezados de columna, pero desea

agrupar las fechas en intervalos que el asistente no proporciona, como un ao fiscal o un bienio, no use el asistente
para crear la consulta. En lugar de ello, cree la consulta de tabla de referencias cruzadas en la vista Diseo y use una
expresin para crear los intervalos.

Se puede usar como punto de partida. Puede usar el asistente para crear la consulta bsica de tabla de
referencias cruzadas que desee y, despus, ajustar el diseo de la consulta en la vista Diseo.

Sin embargo, con el asistente no se puede:

Usar ms de una tabla o consulta como origen de registros (origen de registros: origen de datos subyacente de un
formulario, informe o pgina de acceso a datos. En una base de datos de Access, puede ser una tabla, una consulta o
una instruccin SQL. En un proyecto de Access, puede ser una tabla, una vista, una instruccin SQL o un
procedimiento almacenado.).

Usar una expresin (expresin: cualquier combinacin de operadores matemticos o lgicos, constantes,
funciones y nombres de campos, controles y propiedades que evala a un solo valor. Las expresiones pueden realizar
clculos, manipular caracteres o probar datos.) para crear campos.

Agregar un mensaje de solicitud de parmetros (consulta de parmetros: consulta en la que un usuario especifica
interactivamente uno o ms valores de criterio. Una consulta de parmetros no es un tipo diferente de consulta; ms
bien, extiende la flexibilidad de una consulta.).

Especificar una lista de valores fijos para usarlos como encabezados de columna.
NOTA

En el ltimo paso del asistente, puede elegir si desea modificar la consulta en la vista Diseo. Esto le permite

agregar elementos de diseo de consulta que el asistente no admite, como orgenes de registros adicionales.
Trabajar en la vista Diseo La vista Diseo le ofrece un mayor control sobre el diseo de la consulta. Admite las
caractersticas que no estn disponibles en el asistente.
Considere la posibilidad de usar la vista Diseo para crear la consulta de tabla de referencias cruzadas si desea:

Tener un mayor control sobre el proceso. El asistente toma algunas decisiones por el usuario.

Usar ms de una tabla o consulta como origen de registros.

Agregar un mensaje de solicitud de parmetros a la consulta.

Usar expresiones como campos en la consulta.

Especificar una lista de valores fijos para usarlos como encabezados de columna.

Practicar el uso de la cuadrcula de diseo (cuadrcula de diseo: cuadrcula utilizada para disear una consulta o
un filtro en la vista Diseo de consulta o en la ventana Filtro u orden avanzado. Para las consultas, esta cuadrcula se
conoca antes como la cuadrcula QBE.).

Escribir una consulta en la vista SQL Puede escribir una consulta de tabla de referencias cruzadas en la vista SQL si lo
prefiere. Sin embargo, no puede especificar tipos de datos de parmetros mediante la vista SQL. Si desea usar un parmetro
en la consulta de tabla de referencias cruzadas, debe especificar el tipo de datos de parmetros modificando la consulta en la
vista Diseo.

SUGERENCIA Recuerde: no tiene por qu usar un nico mtodo para crear una consulta de tabla de referencias cruzadas.

Puede usar el asistente para crear la consulta y, despus, usar la vista Diseo para modificar el diseo de la consulta.
Volver al principio

Crear una consulta de tabla de referencias cruzadas


Crear una consulta de tabla de referencias cruzadas con el Asistente para consultas de referencias cruzadas
Crear una consulta de tabla de referencias cruzadas en la vista Diseo
Crear una consulta de tabla de referencias cruzadas en la vista SQL

CREAR UNA CONSULTA DE TABLA DE REFERENCIAS CRUZADAS CON EL ASISTENTE PARA


CONSULTAS DE REFERENCIAS CRUZADAS
El uso del Asistente para consultas de referencias cruzadas requiere que use una sola tabla o consulta como origen de
registros para la consulta. Si una nica tabla no tiene todos los datos que desea incluir en la consulta, comience por crear una
consulta de seleccin que devuelva los datos que desee. Para obtener ms informacin acerca de la creacin de una consulta
de seleccin, consulte la seccin Vea tambin.
1.

En la ficha Crear, en el grupo Macros y cdigo, haga clic en Asistente para consultas.

2.

En el cuadro de dilogo Nueva consulta, haga clic en Asistente para consultas de referencias cruzadas y en
Aceptar.
Se inicia el Asistente para consultas de referencias cruzadas.

3.

En la primera pgina del asistente, elija la tabla o consulta que desee usar para crear una consulta de tabla de
referencias cruzadas.

4.

En la siguiente pgina, elija el campo que contiene los valores que desee usar como encabezados de fila.
Puede seleccionar hasta tres campos para los orgenes de encabezados de fila, pero cuantos menos encabezados de
fila use, ms fcil ser de leer la hoja de datos de tabla de referencias cruzadas.
NOTA

Si elige ms de un campo para los encabezados de fila, el orden en que elija los campos determinar el

orden predeterminado en el que se ordenarn los resultados.


5.

En la siguiente pgina, elija el campo que contiene los valores que desee usar como encabezados de columna.

En general, debe elegir un campo que contenga pocos valores para facilitar la lectura de los resultados. Por ejemplo,
puede ser preferible usar un campo que slo tenga algunos valores posibles (por ejemplo, sexo) que usar un campo
que pueda contener muchos valores diferentes (por ejemplo, edad).
Si el campo que usa para los encabezados de columna tiene un tipo de datos de fecha y hora, el asistente agregar
un paso que le permitir especificar cmo agrupar las fechas por intervalos, por ejemplo meses o trimestres.
6.

Si elige un campo de fecha y hora para los encabezados de columna, en la siguiente pgina del asistente se le
pedir que especifique el intervalo por el que desea agrupar las fechas. Puede especificar Ao, Trimestre, Mes,
Fecha o Fecha/Hora. Si no elige un campo de fecha y hora para los encabezados de columna, el asistente se saltar
esta pgina.

7.

En la siguiente pgina, elija un campo y una funcin para calcular valores de resumen. El tipo de datos (tipo de
datos de campo: caracterstica de un campo que determina el tipo de datos que puede almacenar. Por ejemplo, un
campo cuyo tipo de datos es Texto puede almacenar datos que consten de letras o nmeros, pero un campo de tipo
Nmero slo puede almacenar datos numricos.) del campo que seleccione determinar qu funciones estn
disponibles.

8.

En la misma pgina, active o desactive la casilla de verificacin S, incluir sumas de filas para incluir o excluir las
sumas de fila.
Si incluye sumas de fila, la consulta de tabla de referencias cruzadas tendr un encabezado de fila adicional que usa
el mismo campo y funcin que el valor del campo. Al incluir una suma de fila se inserta una columna adicional que
resume las dems columnas. Por ejemplo, si la consulta calcula el promedio de edad por ubicacin y sexo (con
encabezados de columna de sexo), la columna adicional calcula el promedio de edad por ubicacin para todos los
sexos.
NOTA

Puede cambiar la funcin que se usa para producir sumas de fila si edita la consulta de tabla de referencias

cruzadas en la vista Diseo.


9.

En la siguiente pgina del asistente, escriba un nombre para la consulta y, despus, especifique si desea ver los
resultados o modificar el diseo de la consulta.

Volver al principio

CREAR UNA CONSULTA DE TABLA DE REFERENCIAS CRUZADAS EN LA VISTA DISEO


Al usar la vista Diseo para crear la consulta de tabla de referencias cruzadas, puede usar todos los orgenes de registros
(tablas y consultas) que desee. Sin embargo, puede simplificar el diseo si crea primero una consulta de seleccin que
devuelva todos los datos que desea y, despus, usa dicha consulta como nico origen de registros para la consulta de tabla de

referencias cruzadas. Para obtener ms informacin acerca de la creacin de una consulta de seleccin, consulte la seccin
Vea tambin.
Al crear una consulta de tabla de referencias cruzadas en la vista Diseo, se usan las filas Total y Tabla de referencias
cruzadas de la cuadrcula de diseo para especificar qu valores de campo se convertirn en encabezados de columna, cules
se convertirn en encabezados de fila y para qu campo se debe proporcionar la suma, promedio, recuento u otro clculo.

La configuracin de estas filas determina si el campo es un encabezado de fila, un encabezado de columna o un valor de
resumen.
Esta configuracin muestra los valores del campo como encabezados de fila.
Esta configuracin muestra los valores del campo como encabezados de columna.
Esta configuracin produce los valores de resumen.

Crear la consulta
1.

En la ficha Crear, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

En el cuadro de dilogo Mostrar tabla, haga doble clic en cada tabla o consulta que desee usar como origen de
registros.
Si utiliza ms de un origen de registros, asegrese de que las tablas o consultas se combinan (combinacin:
asociacin entre un campo de una tabla o consulta y un campo del mismo tipo de datos de otra tabla o consulta. Las
combinaciones indican al programa cmo se relacionan los datos. Los registros que no coinciden pueden incluirse o
excluirse, dependiendo del tipo de combinacin.) por campos que tengan en comn. Para obtener ms informacin
acerca de la combinacin de tablas y consultas, consulte la seccin Vea tambin.

3.

Cierre el cuadro de dilogo Mostrar tabla.

4.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Tabla de referencias cruzadas.

5.

En la ventana de diseo de la consulta, haga doble clic en cada campo que desee usar como origen de
encabezados de fila. Puede seleccionar hasta tres campos para los encabezados de fila.

6.

En la cuadrcula de diseo de la consulta, en la fila Tabla de referencias cruzadas de cada campo de


encabezado de fila, seleccione Encabezado de fila.
Puede especificar una expresin en la fila Criterios para limitar los resultados de dicho campo. Tambin puede usar la
fila Ordenar para especificar un criterio de ordenacin para un campo.

7.

En la ventana de diseo de la consulta, haga doble clic en el campo que desee usar como origen de encabezados
de columna. Para los encabezados de columna, slo puede seleccionar un campo.

8.

En la cuadrcula de diseo de la consulta, en la fila Tabla de referencias cruzadas del campo de encabezado de
columna, seleccione Encabezado de columna.
Puede escribir una expresin en la fila Criterios para limitar los resultados del campo de encabezado de columna. Sin
embargo, el uso de una expresin de criterios con el campo de encabezado de columna no limita el nmero de
columnas que devuelve la consulta de tabla de referencias cruzadas. En su lugar, limita qu columnas contienen
datos. Por ejemplo, suponga que tiene un campo de encabezado de columna con tres valores posibles: rojo, verde y
azul. Si aplica el criterio ='azul' al campo de encabezado de columna, la consulta seguir mostrando una columna
para rojo y otra para verde, pero slo la columna de azul contendr datos.
NOTA

Si desea limitar los valores que se muestran como encabezados de columna, puede especificar una lista de

valores fijos mediante la propiedad Encabezados de columna de la consulta. Para obtener ms informacin, vea el
tema sobre cmo especificar valores fijos para los encabezados de columna.
9.

En la ventana de diseo de la consulta, haga doble clic en el campo que desee usar para calcular valores de
resumen. Slo puede seleccionar un campo para valores de resumen.

10.

En la cuadrcula de diseo de la consulta, en la fila Total del campo de valores de resumen, seleccione una
funcin de agregado que se usar para calcular los valores.

11.

En la fila Tabla de referencias cruzadas del campo de valores de resumen, seleccione Valor.
No se pueden especificar criterios para un campo de valores de resumen ni ordenar por dicho campo.

12.

En la ficha Diseo, en el grupo Resultados, haga clic en Ejecutar.

Especificar valores fijos para los encabezados de columna

Si desea especificar valores fijos para los encabezados de columna, puede establecer la propiedad Encabezados de columna
de la consulta.
1.

Abra la consulta de tabla de referencias cruzadas en la vista Diseo.

2.

Si la hoja de propiedades no est visible, presione F4 para mostrarla.

3.

En la hoja de propiedades, justo encima de la ficha General, asegrese de que el Tipo de seleccin es
Propiedades de la consulta. Si no lo es, haga clic en un lugar vaco del espacio situado encima de la cuadrcula de
diseo de la consulta.

4.

En la hoja de propiedades, en la ficha General, en la propiedad Encabezados de columna, especifique la lista de


valores separados por comas que desee usar como encabezados de columna.
NOTA

Algunos caracteres (como la mayora de los signos de puntuacin) no estn permitidos en los encabezados

de columna. Si usa estos caracteres en la lista de valores, Access sustituye cada uno de ellos por el carcter de
subrayado (_).
Volver al principio

CREAR UNA CONSULTA DE TABLA DE REFERENCIAS CRUZADAS EN LA VISTA SQL


Sintaxis SQL para una consulta de tabla de referencias cruzadas

Una consulta de tabla de referencias cruzadas se expresa en SQL como una instruccin TRANSFORM. La sintaxis de una
instruccin TRANSFORM es la siguiente:
TRANSFORM funcinDeAgregado
instruccinSelect
PIVOT campoDinmico [IN (valor1[, valor2[, ...]])]
La instruccin TRANSFORM consta de los siguientes elementos:
Elemento

Descripcin

funcinDeAgreg
ado

Funcin de agregado de SQL que opera sobre los datos seleccionados.

instruccinSelec
t

Una instruccin SELECT.

campoDinmico

Campo o expresin (expresin: cualquier combinacin de operadores matemticos o lgicos, constantes,


funciones y nombres de campos, controles y propiedades que evala a un solo valor. Las expresiones
pueden realizar clculos, manipular caracteres o probar datos.) que desea usar para crear encabezados de
columna en el conjunto de resultados de la consulta.

valor1, valor2

Valores fijos que se usan para crear encabezados de columna.

La vista SQL no limita el nmero de tablas o consultas que se pueden usar como orgenes de registros para una consulta de
tabla de referencias cruzadas. Sin embargo, puede simplificar el diseo si crea una consulta de seleccin que devuelva todos
los datos que desee usar en la consulta y despus usa dicha consulta de seleccin como origen de registros. Para obtener ms
informacin acerca de la creacin de una consulta de seleccin, consulte la seccin Vea tambin.
1.

En la ficha Diseo, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

Cierre el cuadro de dilogo Mostrar tabla.

3.

En la ficha Diseo, en el grupo Resultados, haga clic en SQL.

4.

En la ficha Objeto SQL, escriba o pegue el siguiente cdigo SQL:

5.

TRANSFORM

6.

SELECT

7.

FROM

8.

GROUP BY

9.

PIVOT
;

10.

En la primera lnea, a continuacin de TRANSFORM, escriba una expresin que se usar para calcular valores de
resumen; por ejemplo, Sum([Cantidad]).
NOTA

Si usa ms de una tabla o consulta como origen de registros, incluya el nombre de la tabla o consulta como

parte del nombre de cada campo; por ejemplo, Sum([Gasto].[Cantidad]).


11.

En la segunda lnea, a continuacin de SELECT, escriba una lista de campos o expresiones de campo que desee
usar para los encabezados de columna. Separe los elementos de la lista mediante comas; por ejemplo,
[Presupuesto].[Id_Dpto], [Gasto].[Tipo].

12.

En la tercera lnea, a continuacin de FROM, escriba una lista de las tablas o consultas que use como orgenes de
registros; por ejemplo, Presupuesto, Gasto.

13.

En la cuarta lnea, a continuacin de GROUP BY, escriba la misma lista de campos que us en la clusula
SELECT en el paso 6.

14.

En la quinta lnea, a continuacin de PIVOT, escriba un nombre de campo o una expresin que desee usar para
los encabezados de columna; por ejemplo, PIVOT [Presupuesto].[Ao].

Agregar un criterio de ordenacin a un campo de encabezado de fila


Para agregar un criterio de ordenacin a una consulta de tabla de referencias cruzadas en la vista SQL, use una clusula
ORDER BY.

1.

Inserte una lnea entre la clusula GROUP BY y la clusula PIVOT.

2.

En la nueva lnea, escriba ORDER BY seguido de un espacio.

3.

Escriba el nombre del campo o la expresin que desee usar para ordenar; por ejemplo, ORDER BY [Gasto].
[Clase_Gasto]
De manera predeterminada, una clusula ORDER BY ordena los valores en orden ascendente. Si desea usar un
orden descendente, escriba DESC a continuacin del nombre del campo o la expresin.

4.

Si desea ordenar por un campo o expresin adicional, escriba una coma y, despus, escriba el nombre del campo
o la expresin adicional. La ordenacin se produce en el orden en que aparecen los campos o las expresiones en la
clusula ORDER BY.

Limitar los valores usados para los encabezados de fila o columna


Puede usar los siguientes procedimientos para especificar una lista de valores como encabezados de columna y agregar
criterios a los campos de encabezado de fila. En estos procedimientos se supone que tiene la consulta de tabla de referencias
cruzadas abierta en la vista SQL.

Especificar valores fijos para usarlos como encabezados de columna


Al final de la clusula PIVOT, escriba IN seguido de una lista de valores separados por comas (entre parntesis)

para usarlos como encabezados de columna. Por ejemplo, IN (2007, 2008, 2009, 2010) produce cuatro encabezados
de columna: 2007, 2008, 2009, 2010.
NOTA

Si especifica un valor fijo que no corresponde a un valor del campo dinmico, el valor fijo se convierte en un

encabezado de una columna vaca.

Agregar criterios de consulta para limitar los encabezados de fila


1.

Inserte una nueva lnea a continuacin de la clusula FROM.

2.

Escriba WHERE seguido de un criterio de campo.


Si desea usar criterios adicionales, puede usar los operadores AND y OR para ampliar la clusula WHERE. Tambin
puede usar parntesis para agrupar los criterios en conjuntos lgicos.

Volver al principio

Usar rangos o intervalos para los encabezados

En ocasiones, en lugar de usar todos los valores de un campo para los encabezados de fila o columna, puede ser conveniente
agrupar los valores de un campo en intervalos y, despus, usar dichos intervalos para los encabezados de fila o columna. Por
ejemplo, suponga que usa un campo "Edad" para los encabezados de columna. En lugar de usar una columna para cada edad,
puede ser preferible usar columnas que representen intervalos de edad.
Puede usar la funcin IIf en una expresin para crear intervalos para los encabezados de fila o columna.
SUGERENCIA Si desea crear intervalos con un campo de fecha y hora, considere la posibilidad de usar el Asistente para

consultas de referencias cruzadas. El asistente le permite agrupar las fechas por intervalos de Ao, Trimestre, Mes, Fecha o
Fecha/Hora. Si ninguno de estos intervalos es de su agrado, debe crear la consulta en la vista Diseo y, despus, usar la
tcnica descrita en esta seccin para crear los intervalos que desea.

Funcionamiento de IIf
La funcin IIf evala una expresin y, despus, devuelve un valor si la expresin es verdadera u otro valor si la expresin es
falsa. Puede anidar instrucciones IIf para crear una secuencia lgica de comparaciones. Por tanto, puede usar IIf para separar
valores de campos numricos en intervalos.
Sintaxis de IIf

IIf(expresin, parteverdadera, partefalsa)


La sintaxis de la funcin IIf consta de los siguientes argumentos (argumento: valor que proporciona informacin a una accin,
un evento, un mtodo, una propiedad, una funcin o un procedimiento.):
Argumento

Descripcin

expresin

Obligatorio. Expresin que se desea evaluar.

parteverdadera

Requerido. Valor o expresin que se devuelve si el valor de expresin es Verdadero.

partefalsa

Requerido. Valor o expresin que se devuelve si el valor de expresin es Falso.

CREAR INTERVALOS MEDIANTE UNA EXPRESIN


1.

Abra la consulta de tabla de referencias cruzadas en la vista Diseo.

2.

En la cuadrcula de diseo de la consulta, en la fila Campo, haga clic con el botn secundario en una columna
vaca y, despus, haga clic en Zoom en el men contextual.

3.

En el cuadro Zoom, escriba un alias de campo (alias (SQL): nombre alternativo para una tabla o campo en
expresiones. Los alias se utilizan a menudo para acortar el nombre de una tabla o de un campo para referencias

posteriores en el cdigo, a fin de evitar posibles referencias ambiguas o para proporcionar un nombre ms descriptivo
en los resultados de una consulta.) seguido de dos puntos (:).
4.

Escriba IIf().

5.

Entre los parntesis que siguen a IIf, escriba una expresin de comparacin que defina el primer intervalo de
valores del campo.
Por ejemplo, suponga que va a crear intervalos para un campo Edad y desea que cada intervalo sea de veinte aos.
La expresin de comparacin del primer intervalo es [Edad]<21.

6.

Escriba una coma detrs de la expresin de comparacin y, despus, escriba un nombre para el intervalo entre
comillas. El nombre que proporcione ser el encabezado de tabla de referencias cruzadas para los valores
comprendidos en el intervalo.
Por ejemplo, detrs de [Edad]<21, escriba una coma y, despus, escriba "0-20 aos".

7.

Escriba una coma detrs del nombre del intervalo (fuera de las comillas) y, despus, realice uno de los siguientes
procedimientos:

Para crear otro intervalo, escriba IIf() y, despus, repita los pasos 5, 6 y 7.

Para el ltimo intervalo, escriba slo un nombre para el intervalo.


Por ejemplo, una expresin IIf anidada completa que separa un campo Edad en intervalos de veinte aos puede tener
el siguiente aspecto (se han agregado saltos de lnea para facilitar la legibilidad):
IIf([Edad]<21,"0-20 aos",
IIf([Edad]<41,"21-40 aos",
IIf([Edad]<61,"41-60 aos",
IIf([Edad]<81,"61-80 aos", "80+ aos"))))
NOTA

Cuando Access evala la expresin, se interrumpe en cuanto una de las instrucciones IIf se evala como

True. No es necesario especificar el extremo inferior de cada intervalo, ya que cualquier valor por debajo del extremo
inferior de un intervalo determinado ya se habra evaluado como True.
8.

En la cuadrcula de diseo de la consulta, en la fila Total, seleccione Agrupar por.

9.

En la fila Tabla de referencias cruzadas, especifique si se deben usar los intervalos como encabezados de fila o
encabezados de columna. Recuerde que puede especificar entre uno y tres encabezados de fila, y un encabezado de
columna.

Volver al principio

Solicitar un parmetro para limitar los encabezados de fila.

Puede que desee que la consulta de tabla de referencias cruzadas solicite informacin cuando se ejecute. Por ejemplo,
suponga que usa varios encabezados de fila, uno de los cuales es Pas o regin. En lugar de mostrar siempre los datos de
cada pas o regin, puede que desee que la consulta solicite un nombre y, despus, se muestren los datos en funcin de la
informacin del usuario.
Puede agregar un mensaje de solicitud de parmetros a cualquier campo de encabezado de fila.
NOTA

Tambin puede agregar un mensaje de solicitud de parmetros a un campo de encabezado de columna, pero esto no

limitar las columnas que aparecen. Para obtener ms informacin acerca de la limitacin de las columnas que aparecen, vea
la seccin Especificar valores fijos para los encabezados de columna.
1.

Abra la consulta de tabla de referencias cruzadas en la vista Diseo.

2.

En la fila Criterios del campo de encabezado de fila para el que desee solicitar informacin al usuario, escriba el
texto de la pregunta entre corchetes. El texto aparecer como un mensaje al ejecutar la consulta.
Por ejemplo, si escribe [Qu pas o regin?] en la fila Criterios, cuando se ejecute la consulta, aparecer un cuadro
de dilogo con la pregunta "Qu pas o regin?", un cuadro para especificar la informacin y un botn Aceptar.
SUGERENCIA Si desea que el parmetro sea flexible, concatene la expresin con caracteres comodn mediante el

operador Como. Por ejemplo, en lugar de usar [Qu pas o regin?] como criterio, puede usar Como [Qu pas o
regin?]&"*" para que el parmetro coincida con un intervalo de datos mayor. El uso de Como no cambia la
apariencia del mensaje de solicitud de parmetros.
3.

En la ficha Diseo, en el grupo Mostrar u ocultar, haga clic en Parmetros.

4.

En el cuadro de dilogo Parmetros de la consulta, en la columna Parmetros, especifique el mismo mensaje


de solicitud de parmetros que us en la fila Criterios. Incluya los corchetes, pero no incluya caracteres comodn
concatenados ni el operador Como.

5.

En la columna Tipo de datos, seleccione el tipo de datos del parmetro. El tipo de datos debe coincidir con el tipo
de datos del campo de encabezado de fila.

Volver al principio

Reemplazar valores Null por ceros


Si el campo que usa para calcular valores de resumen en la consulta de tabla de referencias cruzadas contiene valores Null,
estos valores se omitirn en cualquier funcin de agregado que use. En algunas funciones de agregado, los resultados pueden
verse afectados. Por ejemplo, para calcular un promedio, se suman todos los valores y se divide el resultado entre el nmero
de valores. Pero si el campo contiene valores Null, stos no se cuentan como parte del nmero de valores.

En algunos casos, es posible que prefiera reemplazar los valores Null por ceros con el fin de que los valores se cuenten
durante los clculos de agregado. Puede usar la funcin Nz para reemplazar los valores Null por ceros.
Sintaxis de Nz

Nz(variant, [valorSiEsNulo ] )
La sintaxis de la funcin Nz consta de los siguientes argumentos:
Argumento

Descripcin

variant

Requerido. Variable del tipo de datos (tipo de datos: caracterstica de un campo que determina el tipo de datos
que puede albergar. Los tipos de datos son: Booleano, Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y
Variant (predeterminado).)Variant.

valorSiEsN
ulo

Opcional (a menos que se use en una consulta). Tipo de datos Variant que proporciona el valor que se va a
devolver si el argumento variant es Null. Este argumento permite devolver un valor distinto de cero o una
cadena de longitud cero.
NOTA
Si usa la funcin Nz en una expresin de una consulta sin usar el argumento valorSiEsNulo, el
resultado ser una cadena de longitud cero en los campos que contengan valores nulos.

1.

Con la consulta abierta en la vista Diseo, en la cuadrcula de diseo de la consulta, haga clic con el botn
secundario en el campo Valor.

2.

En el men contextual, haga clic en Zoom.

3.

En el cuadro Zoom, incluya el nombre del campo o la expresin entre parntesis y, despus, escriba Nz delante
de los parntesis.

4.

Escriba , 0 justo antes del parntesis de la derecha.


Por ejemplo, si us Nz con un campo llamado "Horas perdidas" para convertir los valores Null en ceros, la expresin
terminada tendra el siguiente aspecto:
Nz([Horas perdidas], 0)

Volver al principio

Sugerencias para consultas de tabla de referencias cruzadas


Simplifique Las consultas de tabla de referencias cruzadas pueden ser difciles de leer a medida que aumenta el
nmero de combinaciones de filas. No use ms encabezados de fila de los necesarios.
Construya la tabla de referencias cruzadas por pasos No se limite al uso de tablas. Puede empezar por crear
una consulta de totales (consulta de totales: consulta que muestra un clculo de resumen, como un promedio o una
suma, para valores de varios campos de una tabla o tablas. Una consulta de totales no es un tipo diferente de

consulta; ms bien, extiende la flexibilidad de las consultas seleccionadas.) y, despus, usar dicha consulta como
origen de registros de una consulta de tabla de referencias cruzadas.
Elija con cuidado el campo de encabezado de columna Las hojas de datos de tabla de referencias cruzadas
tienden a ser ms fciles de leer cuando el nmero de encabezados de columna es relativamente pequeo. Una vez
identificados los campos que desea usar como encabezados, considere la posibilidad de usar el campo que tenga
menos valores distintivos para producir encabezados de columna. Por ejemplo, si la consulta calcula un valor por edad
y sexo, considere la posibilidad de usar el sexo para los encabezados de columna en lugar de la edad, ya que el sexo
tiene menos valores posibles que la edad.
Use una subconsulta en una clusula WHERE Puede usar una subconsulta como parte de una clusula
WHERE en una consulta de tabla de referencias cruzadas.
Volver al principio
Access > Obtener ayuda

Especificaciones de Access 2010


En este artculo
Especificaciones de bases de datos
Especificaciones de proyectos

Especificaciones de bases de datos


La siguiente lista de tablas se aplica a bases de datos de Access 2007 y Microsoft Access 2010:

GENERAL
Atributo

Mximo

Tamao de archivo (.accdb) de las bases de


datos de Access

2 gigabytes, menos el espacio necesario para los objetos del sistema

Nmero de objetos en una base de datos

32.768

Nmero de mdulos (incluidos los


formularios e informes con la propiedad
TieneUnMduloAsociado (HasModule)
establecida en Verdadero)

1.000

Nmero de caracteres en un nombre de


objeto

64

NOTA
NOTA: aunque el tamao mximo para un solo archivo de base de
datos es de 2 GB, puede evitar esta limitacin usando una base de datos
dividida. Un archivo de base de datos front-end puede apuntar a miles de
archivos de base de datos back-end, cada uno de los cuales podra un tamao
de 2 GB. Para obtener ms informacin, vea el tema sobre cmo dividir una base
de datos.

Nmero de caracteres en una contrasea

20

Nmero de caracteres en un nombre de


usuario o de grupo

20

Nmero de usuarios simultneos

255

TABLA
Atributo

Mximo

Nmero de caracteres en un nombre de tabla

64

Nmero de caracteres en un nombre de campo

64

Nmero de campos en una tabla

255

Nmero de tablas abiertas

2.048; el nmero real podra ser menor debido a


las tablas que abre Access internamente.

Tamao de tabla

2 gigabytes menos el espacio necesario para los


objetos del sistema

Nmero de caracteres en un campo de texto

255

Nmero de caracteres en un campo Memo

65.535 cuando se escriben los datos a travs de


la interfaz de usuario;
2 gigabytes de almacenamiento de caracteres
cuando se escriben los datos mediante
programacin

Tamao de un campo Objeto OLE

1 gigabyte

Nmero de ndices en una tabla

32

Nmero de campos en un ndice

10

Nmero de caracteres en un mensaje de validacin

255

Nmero de caracteres en una regla de validacin

2.048

Nmero de caracteres en una descripcin de tabla o campo

255

Nmero de caracteres en un registro (sin incluir los campos Memo y Objeto


OLE) cuando el valor de la propiedad UnicodeCompression de los campos
es S

4.000

Nmero de caracteres en el valor de una propiedad de campo

255

CONSULTA
Atributo

Mximo

Nmero de relaciones aplicadas

32 por tabla, menos el nmero de ndices que hay en la tabla para campos o
combinaciones de campos que no forman parte de las relaciones*

Nmero de tablas en una consulta

32*

Nmero de combinaciones en una consulta

16*

Nmero de campos en un conjunto de


registros

255

Tamao de un conjunto de registros

1 gigabyte

Lmite para ordenar

255 caracteres en uno o varios campos

Nmero de niveles de consultas anidadas

50*

Nmero de caracteres en una celda de la


cuadrcula de diseo de una consulta

1.024

Nmero de caracteres de un parmetro en


una consulta de parmetros

255

Nmero de operadores AND en una clusula


WHERE o HAVING

99*

Nmero de caracteres en una instruccin


SQL

Aproximadamente 64.000*

*Los valores mximos podra ser ms bajos si la consulta incluye campos de bsqueda multivalor.

FORMULARIO E INFORME
Atributo

Mximo

Nmero de caracteres en una etiqueta

2.048

Nmero de caracteres en un cuadro de texto

65.535

Ancho de formulario o informe

22 pulgadas (55,87
cm)

Alto de seccin

22 pulgadas (55,87
cm)

Alto de todas las secciones ms los encabezados de seccin (en la vista Diseo)

200 pulgadas (508


cm)

Nmero de niveles de formularios o informes anidados

Nmero de campos o expresiones que se pueden ordenar o agrupar en un informe

10

Nmero de encabezados y pies en un informe

1 encabezado/pie de
informe;
1 encabezado/pie de
pgina;
10 encabezados/pies
de grupo

Nmero de pginas impresas en un informe

65.536

Nmero de controles y secciones que se pueden agregar a lo largo de la vida del formulario o del
informe

754

Nmero de caracteres en una instruccin SQL que acta como la propiedad OrigenDelRegistro
(Recordsource) u OrigenDeLaFila (Rowsource) de un formulario, informe o control (tanto .accdb
como .adp)

32.750

MACRO
Atributo

Mximo

Nmero de acciones en una macro

999

Nmero de caracteres en una condicin

255

Nmero de caracteres en un comentario

255

Nmero de caracteres en un argumento de accin

255

Volver al principio

Especificaciones de proyectos
La siguiente lista de tablas se aplica a proyectos de Access 2007 y Access 2010:

GENERAL
Atributo

Mximo

Nmero de objetos en un proyecto de Access (.adp)

32.768

Nmero de mdulos (incluidos los formularios e informes con la propiedad


TieneUnMduloAsociado (HasModule) establecida en Verdadero)

1.000

Nmero de caracteres en un nombre de objeto

64

Nmero de columnas en una tabla

250 (Microsoft SQL Server


6.5)
1024 (Microsoft SQL Server
7.0, 2000 y 2005)

BASE DE DATOS DE MICROSOFT SQL SERVER


Las especificaciones de capacidad mxima de Microsoft SQL Server se encuentran descritas en la documentacin de SQL Server.

FORMULARIO E INFORME
Atributo

Mximo

Nmero de caracteres en una etiqueta

2.048

Nmero de caracteres en un cuadro de texto

65.535

Ancho de formulario o informe

22 pulgadas (55,87
cm)

Alto de seccin

22 pulgadas (55,87
cm)

Alto de todas las secciones ms los encabezados de seccin (en la vista Diseo)

200 pulgadas (508


cm)

Nmero de niveles de formularios o informes anidados

Nmero de campos o expresiones que se pueden ordenar o agrupar en un informe

10

Nmero de encabezados y pies en un informe

1 encabezado/pie de
informe;
1 encabezado/pie de
pgina;
10 encabezados/pies
de grupo

Nmero de pginas impresas en un informe

65.536

Nmero de controles y secciones que se pueden agregar a lo largo de la vida del formulario o del
informe

754

Nmero de caracteres en una instruccin SQL que acta como la propiedad OrigenDelRegistro
(Recordsource) u OrigenDeLaFila (Rowsource) de un formulario, informe o control (tanto .accdb
como .adp)

32.750

MACRO
Atributo

Mximo

Nmero de acciones en una macro

999

Nmero de caracteres en una condicin

255

Nmero de caracteres en un comentario

255

Nmero de caracteres en un argumento de accin

255

Volver al principio
Access > Consultas

Actualizar datos mediante una consulta


Ocultar todo

En este artculo se explica cmo crear y ejecutar una consulta de actualizacin. Se usa este tipo de consulta para actualizar o
cambiar datos en un conjunto de registros.
No puede usar una consulta de actualizacin para agregar nuevos registros a una base de datos ni para eliminar registros
enteros de una base de datos. Para agregar nuevos registros a una base de datos, use una consulta de datos anexados, y para
eliminar registros enteros de una base de datos, use una consulta de eliminacin. Para obtener ms informacin, vea la seccin
Vea tambin.
NOTA

No se puede ejecutar una consulta de actualizacin en un explorador web. Si desea ejecutar una consulta de

actualizacin en una base de datos web, primero debe abrir la base de datos web mediante Access.

En este artculo
Informacin general

Crear y ejecutar una consulta de actualizacin


Actualizar los datos de una tabla con los datos de otra tabla
Evitar que el modo deshabilitado bloquee una consulta
Versin SQL: instruccin UPDATE

Informacin general
Las consultas de actualizacin se usan para agregar, cambiar o eliminar los datos de uno o varios registros existentes. Las
consultas de actualizacin son una especie de cuadro de dilogo Buscar y reemplazar avanzado.

SIMILITUDES Y DIFERENCIAS ENTRE BUSCAR Y REEMPLAZAR Y UNA CONSULTA DE


ACTUALIZACIN
Al igual que el cuadro de dilogo Buscar y reemplazar, una consulta de actualizacin le permite:

Especificar un valor que desea reemplazar.

Especificar el valor que se va a usar como reemplazo.

A diferencia del cuadro de dilogo Buscar y reemplazar, una consulta de actualizacin le permite:

Usar criterios que no dependen del valor que desea reemplazar.

Actualizar un gran nmero de registros de una sola vez.

Cambiar registros en ms de una tabla al mismo tiempo.

RESTRICCIONES EN LOS CAMPOS QUE PUEDEN ACTUALIZARSE


No se puede usar una consulta de actualizacin para actualizar datos en los siguientes tipos de campos:

Campos calculados Los valores en los campos calculados (campo calculado: campo definido en una consulta
que muestra el resultado de una expresin en lugar de mostrar datos almacenados. El valor se vuelve a calcular cada
vez que cambia un valor de la expresin.) no residen permanentemente en las tablas; existen nicamente en la
memoria temporal del equipo despus de que Access los calcule. Dado que los campos calculados no tienen una
ubicacin de almacenamiento permanente, no se pueden actualizar.

Campos de una consulta de totales o de una consulta de tabla de referencias cruzadas Los valores de
estos tipos de consulta se calculan y no se pueden actualizar mediante una consulta de actualizacin.

Campos Autonumeracin Los valores de los campos Autonumeracin cambian nicamente cuando se agrega

un registro a una tabla.


Campos de consultas de valores nicos y consultas de registros nicos Los valores de estas consultas

estn resumidos. Algunos de los valores representan un nico registro, mientras que otros representan ms de un
registro. La operacin de actualizacin no es posible porque no se puede determinar qu registros se excluyeron
como duplicados y, por tanto, no es posible actualizar todos los registros necesarios. Esta restriccin es aplicable tanto
si usa una consulta de actualizacin como si intenta actualizar los datos manualmente escribiendo valores en un
formulario o en una hoja de datos.
Campos en una consulta de unin No se pueden actualizar los datos de campos de una consulta de unin

porque cada registro que aparece en dos o ms orgenes de datos slo aparece una vez en el resultado de la consulta
de unin. Dado que algunos registros duplicados se quitan de los resultados, Access no puede actualizar todos los
registros necesarios.
Campos que son claves principales En algunos casos, por ejemplo, si el campo de clave principal se usa en

una relacin de tabla, no se puede actualizar el campo mediante una consulta a menos que establezca primero la
relacin de modo que se actualice automticamente en cascada.
NOTA

Si se actualiza en cascada, Access actualiza automticamente los valores clave externa al cambiar el valor

de una clave principal en una tabla primaria.


Volver al principio

Crear y ejecutar una consulta de actualizacin


Como procedimiento recomendado, hay dos pasos principales que debe seguir para crear y ejecutar una consulta de
actualizacin: crear una consulta de seleccin que identifique los registros que desea actualizar y, a continuacin, convertir esa
consulta en una consulta de actualizacin que se puede ejecutar para actualizar los registros.
SUGERENCIA Se recomienda realizar una copia de seguridad de la base de datos antes de ejecutar una consulta de

actualizacin. No se pueden deshacer los resultados de una consulta de actualizacin, por lo que con una copia de seguridad
se asegura de poder revertir los cambios si cambia de opinin.
Cmo realizar una copia de seguridad de la base de datos

1.

Haga clic en la pestaa Archivo y, a continuacin, haga clic en Compartir.

2.

En la parte derecha, en Avanzadas, haga clic en Copia de seguridad de base de datos.

3.

En el cuadro de dilogo Guardar copia de seguridad como, especifique un nombre y una ubicacin para la copia
de seguridad y, a continuacin, haga clic en Guardar.

Access cierra el archivo original, crea una copia de seguridad y, a continuacin, vuelve a abrir el archivo original.
Para volver a una copia de seguridad, cierre el archivo original y cambie su nombre de modo que se pueda usar el
nombre de la versin original para la copia de seguridad. Asigne el nombre de la versin original a la copia de
seguridad y, a continuacin, abra la copia de seguridad con el nombre cambiado en Access.

En esta seccin

Paso 1: Crear una consulta de seleccin para identificar los registros que se actualizarn
Paso 2: Actualizar los registros

PASO 1: CREAR UNA CONSULTA DE SELECCIN PARA IDENTIFICAR LOS REGISTROS QUE SE
ACTUALIZARN
1.

Abra la base de datos que contenga los registros que desee actualizar.

2.

En la ficha Diseo, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.


Se abre el diseador de consultas y se abre el cuadro de dilogo Mostrar tabla.

3.

Haga clic en la pestaa Tablas.

4.

Seleccione la tabla o las tablas que contienen los registros que desea actualizar, haga clic en Agregar y, a
continuacin, haga clic en Cerrar.
Las tablas aparecen como una o varias ventanas en el diseador de consultas y muestran todos los campos de cada
tabla. En la siguiente ilustracin se muestra el diseador de consultas con una tabla tpica.

Tabla en el diseador de consultas


Cuadrcula de diseo de la consulta
5.

Haga doble clic en los campos que desee actualizar en las ventanas de la tabla. Los campos seleccionados
aparecen en la fila Campo de la cuadrcula de diseo de la consulta.
Puede agregar un campo de tabla por columna en la cuadrcula de diseo de la consulta.
Para agregar rpidamente todos los campos de una tabla, haga doble clic en el asterisco (*) situado en la parte
superior de la lista de campos de tabla en la ventana de la tabla. En la siguiente ilustracin se muestra la cuadrcula
de diseo de la consulta con todos los campos agregados.

6.

Para limitar los resultados de la consulta segn valores de campo, en la cuadrcula de diseo de la consulta, en la
fila de Criterios, especifique los criterios que desee usar para limitar los resultados.
Tabla de criterios de ejemplo

En la siguiente tabla se muestran algunos criterios de ejemplo y se explica cmo afectan a los resultados de una
consulta.

NOTA

En muchos de los ejemplos incluidos en esta tabla se usan caracteres comodn para que la consulta sea ms

flexible y ms eficaz.
Criterios

Efecto

>234

Devuelve todos los nmeros mayores que 234. Para buscar todos los nmeros menores que 234, use <
234.

>="Daz"

Devuelve todos los registros desde Daz hasta el final del alfabeto.

Entre #02.02.2007#
Y #01.12.2007#

Devuelve las fechas comprendidas entre el 2 de febrero de 2007 y el 1 de diciembre de 2007 (ANSI-89).
Si la base de datos usa los caracteres comodn ANSI-92, use comillas simples (') en vez de signos de
almohadilla (#). Por ejemplo: Entre '02.02.2007' Y '01.12.2007'.

Sin "Alemania"

Encuentra todos los registros en los que el contenido exacto del campo no es exactamente igual a
"Alemania". El criterio devolver registros que contienen caracteres adems de "Alemania," como
"Alemania (euro)" o "Europa (Alemania)".

Sin "T*"

Busca todos los registros, salvo los que empiezan por T. Si la base de datos usa los caracteres comodn
ANSI-92, use el signo de porcentaje (%) en vez del asterisco (*).

Sin "*t"

Busca todos los registros que no terminen en t. Si la base de datos utiliza el juego de caracteres
comodn ANSI-92, use el signo de porcentaje (%) en vez del asterisco (*).

En(Canad,Reino
Unido)

En una lista, busca todos los registros que contengan Canad o Reino Unido.

Como "[A-D]*"

En un campo de texto, busca todos los registros que empiecen por las letras comprendidas entre la A y
la D, ambas inclusive. Si la base de datos usa el juego de caracteres comodn ANSI-92, use el signo de
porcentaje (%) en vez del asterisco (*).

Como "*ar*"

Busca todos los registros que incluyan la secuencia de letras "ar". Si la base de datos usa el juego de
caracteres comodn ANSI-92, use el signo de porcentaje (%) en vez del asterisco (*).

Como "Casa Dewe?"

Busca todos los registros que empiecen por "Casa" y contengan una segunda cadena de 5 letras, cuyas
cuatro primeras letras son "Dewe" y cuya ltima letra se desconoce. Si la base de datos usa el juego de
caracteres comodn ANSI-92, use el carcter de subrayado (_) en vez del signo de interrogacin (?).

#02.02.2007#

Busca todos los registros del 2 de febrero de 2007. Si la base de datos usa el juego de caracteres
comodn ANSI-92, escriba la fecha entre comillas simples (') en vez de usar signos de almohadilla (#);
por ejemplo, ('02.02.2007').

< Fecha() - 30

Usa la funcin Fecha para devolver todas las fechas con una antigedad de ms de 30 das.

Fecha()

Usa la funcin Fecha para devolver todos los registros que contienen la fecha actual.

Entre Fecha() Y
AgregFecha("M", 3,
Fecha())

Usa las funciones Fecha y AgregFecha para devolver todos los registros entre la fecha actual y tres
meses a partir de la fecha actual.

Es Nulo

Devuelve todos los registros que contengan un valor nulo (en blanco o sin definir).

No es Nulo

Devuelve todos los registros que contienen un valor.

""

Devuelve todos los registros que contienen una cadena de longitud cero. Las cadenas de longitud cero
se utilizan cuando es necesario agregar un valor a un campo obligatorio, pero an no se conoce el valor.
Por ejemplo, un campo puede requerir un nmero de fax, pero puede que algunos clientes no tengan
fax. En ese caso, se incluye un par de comillas dobles sin espacios entre ellas ("") en vez de un nmero.

7.

En la ficha Diseo, en el grupo Resultados, haga clic en Ejecutar.

8.

Compruebe que la consulta devuelva los registros que desea actualizar.

9.

Para quitar todos los campos que no desee incluir en el diseo de la consulta, seleccione los campos y, a
continuacin, presione SUPR.

10.

Para agregar los campos que desea incluir en el diseo de la consulta, arrastre los campos adicionales a la
cuadrcula de diseo de la consulta.

PASO 2: ACTUALIZAR LOS REGISTROS


1.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Actualizar.


En este procedimiento se muestra cmo cambiar una consulta de seleccin a una consulta de actualizacin. Access
agrega la fila Actualizar a a la cuadrcula de diseo de la consulta. En la siguiente ilustracin se muestra una consulta
de actualizacin que devuelve todos los activos comprados despus del 5 de enero de 2005 y cambia la ubicacin a
"Almacn 3" para todos los registros que cumplen ese criterio.

2.

Busque el campo que contiene los datos que desea cambiar y escriba la expresin (los criterios de cambio) en la
fila Actualizar a de ese campo.
Puede usar cualquier expresin vlida en la fila Actualizar a.
Tabla de expresiones de ejemplo

En esta tabla se muestran algunas expresiones de ejemplo y una explicacin de cmo cambian los datos.
Expresin

Resultado

"Vendedor"

En un campo de texto, cambia un valor de texto a Vendedor.

#10.08.2007#

En un campo de tipo Fecha/Hora, cambia un valor de fecha a 10 de agosto de 2007.

En un campo de tipo S/No, cambia el valor No a S.

"NP" & [NmeroPieza]

Agrega "NP" al principio de cada nmero de pieza especificado.

[PrecioUnidad] * [Cantidad]

Multiplica los valores de los campos PrecioUnidad y Cantidad.

[Transporte] * 1,5

Aumenta los valores de un campo denominado Transporte en un 50 por ciento.

DSuma("[Cantidad] *
[PrecioUnidad]",
"Detalles de pedidos",
"[IdProducto]=" &
[IdProducto])

Si los valores de Id de producto de la tabla actual coinciden con los valores de Id de producto
de la tabla denominada Detalles de pedidos, esta expresin actualiza los totales de ventas
multiplicando los valores de un campo denominado Cantidad por los valores de un campo
denominado PrecioUnidad. La expresin usa la funcin DSuma porque funciona con ms de
una tabla y ms de un campo de tabla.

Derecha([CdigoPostalEnvo],
5)

Trunca (quita) los caracteres situados ms a la izquierda en una cadena de texto o una
cadena numrica y deja los cinco caracteres situados ms a la derecha.

SiInm(Es Nulo([PrecioUnidad]),
0, [PrecioUnidad])

3.

Cambia un valor nulo (desconocido o sin definir) a un valor cero (0) en un campo denominado
PrecioUnidad.

En la ficha Diseo, en el grupo Resultados, haga clic en Ejecutar.


Aparece un mensaje de alerta.

4.

Para ejecutar la consulta y actualizar los datos, haga clic en S .


NOTA

Cuando ejecute la consulta, tal vez observe que faltan campos en el conjunto de resultados. De manera

predeterminada, si la consulta contiene campos que no se actualizan, Access no muestra esos campos en los
resultados. Por ejemplo, podra campos Id. de dos tablas para asegurarse de que la consulta identifica y actualiza los
registros correctos. Si no actualiza esos campos Id., Access no los muestra en los resultados.
Volver al principio

Actualizar los datos de una tabla con los datos de otra tabla
Cuando tenga que actualizar los datos de una tabla con los datos de otra, tenga en cuenta esta regla: los tipos de datos de los
campos de origen y de destino deben coincidir o ser compatibles.
Asimismo, cuando se actualizan los datos de una tabla con los datos de otra y se usan tipos de datos compatibles en vez de
tipos de datos coincidentes, Access convierte los tipos de datos de esos campos en la tabla de destino. Como resultado,
algunos de los datos de los campos de destino pueden truncarse (eliminarse). En la seccin Restricciones de conversin de
tipos de datos se describen las formas en que se pueden o no convertir los tipos de datos. En la tabla de esta seccin se
explica asimismo cundo la conversin de un tipo de datos puede cambiar o eliminar algunos o todos los datos de un campo,
as como qu datos podran eliminarse.
El proceso de actualizacin de los datos de una tabla con los datos de otra tabla se compone de los siguientes pasos:
1.

Cree una consulta de actualizacin y agregue las tablas de origen y las de destino a la consulta.

2.

Combine esas tablas en los campos que contienen la informacin relacionada.

3.

Agregue los nombres de los campos de destino a la fila Campo de la cuadrcula de diseo de la consulta.

4.

Agregue los nombres de los campos de origen a la fila Actualizar a de la cuadrcula de diseo de la consulta
mediante la siguiente sintaxis: [tabla_de_origen].[campo_de_origen].

En los pasos descritos en esta seccin se supone que se usan dos tablas similares. En este ejemplo, la tabla Clientes se
encuentra en una base de datos heredada y contiene datos ms recientes que la tabla Compradores. Como puede comprobar,

han cambiado algunos de los nombres de director y algunas de las direcciones. Por ese motivo, se decide actualizar la tabla
Compradores con los datos de la tabla Clientes.

La tabla Clientes
Id. de
client
e

Nombre

Direccin

Ciudad

Estado o
provinci
a

Baldwin
Museum of
Science

Rodeo de la
Cruz 477

Caracas

DF

Blue Yonder
Airlines

Carlos
Pellegrini 1263

San
Cristbal

Coho Winery

C/ Crcega 452

Contoso
Pharmaceutical
s

Cdig
o
postal

Pas o
regin

Telfon
o

12345

Venezuel
a

(505)
5552122

Leonor
Bernab

Tchira

23456

Venezuel
a

(104)
5552123

David
Santos

I. de
Margarit
a

Nueva
Esparta

34567

Venezuel
a

(206)
5552124

Ezequiel
Pic

Av. Benavides
4858

Lima

Lima

45678

Per

(171)
5552125

Manuel
Pereira

Fourth Coffee

Av. de la
Constitucin
2222

Ciudad
de
Mxico

56789

Mxico

(7) 5552126

Julin
Precio

Consolidated
Messenger

Ave. 5 de Mayo
Porlamar

I. de
Margarit
a

Nueva
Esparta

34567

Venezuel
a

(206)
5552125

Carlos
Hernndez

Graphic Design
Institute

Av. del
Libertador 900

Buenos
Aires

Buenos
Aires

87654

Argentin
a

(916)
5552128

Carlos
Gonzlez

Litware, Inc.

Carrera 22 con
Ave. Carlos
Soublette #835

Barinas

Barinas

31415

Venezuel
a

(503)
5552129

Felipe
Izquierdo

Tailspin Toys

Carrera 22 con
Ave. Carlos
Soublette #937

Barinas

Barinas

31415

Venezuel
a

(503)
5552233

Guillermo
Fernndez

Cdig
o
postal

Pas o
regin

Telfon
o

Contacto

La tabla Compradores
Id. de
client
e

Nombre

Direccin

Ciudad

Estado o
provinci
a

Baldwin
Museum of
Science

Rodeo de la
Cruz 477

Caracas

DF

12345

Venezuel
a

(505)
5552122

Esteban
Puerto

Blue Yonder
Airlines

Carlos
Pellegrini
1263

San
Cristbal

Tchira

23456

Venezuel
a

(104)
5552123

David
Santos

Coho Winery

C/ Crcega
452

I. de
Margarita

Nueva
Esparta

34567

Venezuel
a

(206)
5552124

Ezequiel
Pic

Contoso
Pharmaceutical

Av. Benavides
4858

Lima

Lima

45678

Per

(171)
555-

Manuel
Pereira

Director

2125

Fourth Coffee

Calle Huevos
134

Ciudad
de
Mxico

56789

Mxico

(7) 5552126

Julin
Precio

Consolidated
Messenger

Ave. 5 de
Mayo
Porlamar

I. de
Margarita

Nueva
Esparta

34567

Venezuel
a

(206)
5552125

Cristina
Portillo

Graphic Design
Institute

Cerrito 333

Buenos
Aires

Buenos
Aires

87654

Argentin
a

(916)
5552128

Mara
Barrera

Litware, Inc.

Carrera 22
con Ave.
Carlos
Soublette #835

Barinas

Barinas

31415

Venezuel
a

(503)
5552129

Antonio
Moreno

Tailspin Toys

Carrera 22
con Ave.
Carlos
Soublette #937

Barinas

Barinas

31415

Venezuel
a

(503)
5552233

Guillermo
Fernndez

Cuando contine, recuerde que aunque los tipos de datos de cada campo de tabla no deben coincidir, s deben ser
compatibles. Access debe poder convertir los datos de la tabla de origen en un tipo que pueda usar la tabla de destino. En
algunos casos, es posible que el proceso de conversin elimine algunos datos. Para obtener ms informacin sobre las
restricciones de conversin de los tipos de datos, vea la seccin Restricciones de conversin de tipos de datos.

CREAR Y EJECUTAR LA CONSULTA DE ACTUALIZACIN


NOTA

En los pasos que se describen a continuacin, se supone el uso de las dos tablas de ejemplo anteriores. Puede

adaptar los pasos para que se ajusten a sus datos.


1.

Eh la ficha Diseo, en el grupo Macros y cdigo, haga clic en Diseo de la consulta.

2.

En el cuadro de dilogo Mostrar tabla, haga clic en la pestaa Tablas.

3.

Haga doble clic en las tablas de origen y de destino para agregarlas a la consulta y, a continuacin, haga clic en
Cerrar. Cada tabla aparece en una ventana en el diseador de consultas.

4.

En la mayora de casos, Access une automticamente los campos relacionados de una consulta. Para unir
manualmente los campos que contienen informacin relacionada, arrastre el campo relacionado de una tabla al
campo correspondiente de la otra tabla.
Por ejemplo, si usa las tablas de ejemplo anteriores, arrastre el campo Id. de cliente hasta el campo Id. de comprador.
Access crea una relacin entre esos campos de las dos tablas y usa esa relacin para combinar los registros
relacionados.

5.

En la ficha Diseo, en el grupo Tipo de consulta, haga clic en Actualizar.

6.

En la tabla de destino, haga doble clic en los campos que desee actualizar. Cada campo aparece en la fila Campo
de la cuadrcula de diseo de la consulta.
Si usa las tablas de ejemplo, agregue todos los campos excepto el campo Id. de comprador. Observe que el nombre
de la tabla de destino aparece en la fila Tabla de la cuadrcula de diseo.

7.

En la fila Actualizar a de la consulta, en cada una de las columnas que contienen un campo de destino, agregue
el nombre de la tabla de origen y del campo de la tabla de origen correspondiente al campo de la tabla de destino.
Asegrese de usar esta sintaxis: [Tabla].[Campo]. Los nombres de la tabla y del campo deben aparecer entre
corchetes y deben ir separados con un punto.
En esta ilustracin, donde se usan las tablas de ejemplo, se muestra parte de la cuadrcula de diseo. Fjese en la
sintaxis de los nombres de la tabla y del campo en la fila Actualizar a.

Cuando contine, recuerde que debe escribir correctamente los nombres de la tabla y del campo en la fila Actualizar
a y de acuerdo con la puntuacin de los nombres de tabla y de campo originales. No obstante, no es necesario que
coincidan las maysculas y minsculas.
8.

En la ficha Diseo, en el grupo Resultados, haga clic en Ejecutar.

9.

Cuando se le pida que confirme la actualizacin, haga clic en S.

RESTRICCIONES DE CONVERSIN DE TIPOS DE DATOS


En esta tabla se muestran los tipos de datos proporcionados por Access, se explican las restricciones de conversin de los
tipos de datos y se describen brevemente las prdidas de datos que se pueden producir durante la conversin.
Conversin a
este tipo

De este tipo

Cambios o restricciones

Texto

Memo

Access elimina todos los caracteres, salvo los primeros 255.

Nmero

Sin restricciones.

Fecha/Hora

Sin restricciones.

Moneda

Sin restricciones.

Autonumeracin

Sin restricciones.

S/No

El valor -1 (S en un campo S/No) se convierte en S. El valor 0 (No en un campo

S/No) se convierte en No.

Memo

Nmero

Hipervnculo

Access trunca los vnculos de ms de 255 caracteres.

Texto

Sin restricciones.

Nmero

Sin restricciones.

Fecha/Hora

Sin restricciones.

Moneda

Sin restricciones.

Autonumeracin

Sin restricciones.

S/No

El valor -1 (S en un campo S/No) se convierte en S. El valor 0 (No en un campo


S/No) se convierte en No.

Hipervnculo

Sin restricciones.

Texto

El texto debe componerse de nmeros, as como de separadores decimales y de


moneda vlidos. El nmero de caracteres en el campo Texto debe ajustarse al
tamao configurado para el campo Nmero.

Memo

El campo Memo debe contener nicamente texto as como separadores decimales y


de moneda vlidos. El nmero de caracteres en el campo Memo debe ajustarse al
tamao configurado para el campo de tipo Nmero.

Nmero, pero con


otro tamao de
campo u otra
precisin

El tamao de los valores no puede ser menor o mayor que lo que el nuevo tamao
de campo puede almacenar. Al cambiar la precisin, puede que Access redondee
algunos valores.

Fecha/Hora

Las fechas que se pueden convertir dependen del tamao del campo numrico.
Recuerde que Access almacena todas las fechas como fechas de serie y almacena
los valores de fecha como enteros de punto flotante y de precisin doble.
Access usa el 30 de diciembre de 1899 como fecha 0. Las fechas que no pertenecen
al intervalo del 18 de abril de 1899 al 11 de septiembre de 1900 superan el tamao
de un campo Byte. Las fechas que no pertenecen al intervalo del 13 de abril de
1810 al 16 de septiembre de 1989 superan el tamao de un campo Entero.
Para poder alojar todas las posibles fechas, establezca la propiedad Tamao del
campo del campo de tipo Nmero en Largo entero o mayor.

Fecha/Hora

Moneda

Los valores no pueden superar ni quedar por debajo del lmite de tamao
configurado para el campo. Por ejemplo, se puede convertir un campo de tipo
Moneda en un campo de tipo Entero slo cuando esos valores son mayores que 255
y no superan 32.767.

Autonumeracin

Los valores no pueden superar ni quedar por debajo del lmite de tamao
configurado para el campo.

S/No

Los valores "S" se convierten en -1. Los valores "No" se convierten en 0.

Texto

El texto original debe ser una fecha o una combinacin de fecha y hora reconocible.
Por ejemplo, 18.01.2007.

Memo

El texto original debe ser una fecha o una combinacin de fecha y hora reconocible.
Por ejemplo, 18.01.2007.

Nmero

El valor debe estar comprendido entre -657.434 y 2.958.465,99998843.

Moneda

El valor debe estar comprendido entre -657.434 $ y 2.958.465,9999 $.

Autonumeracin

El valor debe ser mayor que -657.434 y menor que 2.958.466.

Moneda

Autonumeraci
n

S/No

Hipervnculo

S/No

El valor -1 (S) se convierte en 29 de diciembre de 1899. El valor 0 (No) se convierte


en medianoche (12:00 a.m.).

Texto

El texto debe constar de nmeros y separadores vlidos.

Memo

El texto debe constar de nmeros y separadores vlidos.

Nmero

Sin restricciones.

Fecha/Hora

Sin restricciones, pero puede que Access redondee el valor.

Autonumeracin

Sin restricciones.

S/No

El valor -1 (S) se convierte en 1 $ y el valor 0 (No) se convierte en 0 $.

Texto

No se permite si el campo Autonumeracin sirve como clave principal.

Memo

No se permite si el campo Autonumeracin sirve como clave principal.

Nmero

No se permite si el campo Autonumeracin sirve como clave principal.

Fecha/Hora

No se permite si el campo Autonumeracin sirve como clave principal.

Moneda

No se permite si el campo Autonumeracin sirve como clave principal.

S/No

No se permite si el campo Autonumeracin sirve como clave principal.

Texto

El texto original debe constar nicamente de S, No, Verdadero, Falso, Activado o


Desactivado.

Memo

El texto original debe constar nicamente de S, No, Verdadero, Falso, Activado o


Desactivado.

Nmero

Cero o Nulo se convierte en No, todos los dems valores se convierten en S.

Fecha/Hora

Nulo o 12:00:00 a.m. se convierte en No; todos los dems valores se convierten en
S.

Moneda

Cero y Nulo se convierten en No; todos los dems valores se convierten en S.

Autonumeracin

Todos los valores se convierten en S.

Texto

Si el texto original contiene una direccin web vlida, como adatum.com,


www.adatum.com o http://www.adatum.com, Access lo convierte en un hipervnculo.
Access intenta convertir otros valores, por lo que se ve texto subrayado, y el cursor
cambia cuando se elige el vnculo, pero los vnculos no funcionan. El texto puede
contener cualquier protocolo web vlido, incluidos http://, gopher://, telnet://, ftp://,
wais://.

Memo

Vea la entrada anterior. Se aplican las mismas restricciones.

Nmero

No se permite cuando un campo de tipo Nmero forma parte de una relacin. Si el


valor original tiene forma de direccin IP (Protocolo de Internet) vlida (cuatro
nmeros de tres dgitos separados por un punto: nnn.nnn.nnn.nnn) y los nmeros
coinciden con una direccin Web, la conversin genera un vnculo vlido. En caso
contrario, Access agrega http:// al principio de cada valor y los vnculos resultantes
no son vlidos.

Fecha/Hora

Access agrega http:// al principio de cada direccin, pero los vnculos resultantes

casi nunca funcionan.


Moneda

Access agrega http:// al principio de cada valor pero, al igual que en el caso de las
fechas, los vnculos resultantes casi nunca funcionan.

Autonumeracin

No se permite cuando un campo Autonumeracin forma parte de una relacin.


Access agrega http:// al principio de cada valor, pero los vnculos resultantes casi
nunca funcionan.

S/No

Access convierte todos los valores S en -1 y todos los valores No en 0, y agrega


http:// al principio de cada valor. Los vnculos resultantes no funcionan.

Volver al principio

Evitar que el modo deshabilitado bloquee una consulta


Si intenta ejecutar una consulta de accin y parece que no sucede nada, compruebe si en la barra de estado de Access
aparece el siguiente mensaje:
El modo deshabilitado ha bloqueado la accin o el evento.
De manera predeterminada, Access deshabilita todas las consultas de accin (consultas de actualizacin, consultas de datos
anexados, consultas de eliminacin y consultas de creacin de tabla), a menos que la base de datos se encuentre en una
ubicacin de confianza o que la base de datos est firmada y sea de confianza. Si no es el caso, todava se puede habilitar la
consulta para la actual sesin de base de datos actual si hace clic en Habilitar contenido en la barra de mensajes.
Volver al principio

Versin SQL: instruccin UPDATE


Si se siente cmodo trabajando con SQL, tambin puede escribir una instruccin UPDATE mediante la vista SQL. Para usar la
vista SQL, cree una consulta nueva en blanco y, a continuacin, cambie la vista SQL.
Esta seccin presenta la sintaxis y un ejemplo de una instruccin UPDATE.

SINTAXIS
UPDATE tabla

SET nuevoValor

WHERE criterios;

La instruccin UPDATE consta de los siguientes elementos:


Elemento

Descripcin

tabla

Nombre de la tabla que contiene los datos que desea modificar.

nuevoValo

Expresin que determina el valor que se debe insertar en un campo determinado en los registros actualizados.

r
criterios

Expresin que determina qu registros sern actualizados. Slo se actualizarn los registros que cumplan la
expresin.

COMENTARIOS
La instruccin UPDATE es especialmente til cuando desea modificar muchos registros o cuando los registros que desea
modificar estn en varias tablas.
Puede cambiar varios campos al mismo tiempo. En el siguiente ejemplo, se incrementan los valores de Cantidad del pedido en
un 10 por ciento y los valores de Carga en un 3 por ciento para los transportistas del Reino Unido:
UPDATE Orders
SET OrderAmount = OrderAmount * 1.1,
Freight = Freight * 1.03
WHERE ShipCountry = 'UK';

Potrebbero piacerti anche