Introducción a Access SQL

download Introducción a Access SQL

of 7

Transcript of Introducción a Access SQL

  • 8/17/2019 Introducción a Access SQL

    1/7

    6/6/2014 Introducción a Access SQL - Access

    http://office.microsoft.com/es-hn/access-help/introduccion-a-access-sq l-HA010341468.aspx 1/7

    Si desea recuperar datos de una base de datos, puede solicitar los datos mediante el Lenguaje de consultaestructurado o SQL. SQL es un lenguaje de computación que se asemeja al inglés y que los programas de bases dedatos comprenden. Cada consulta que se ejecuta usa SQL en segundo plano.

    Si comprende el funcionamiento de SQL, podrá crear mejores consultas además de entender cómo solucionar unaconsulta que no devuelve los resultados deseados.

     NOTA No se puede editar SQL para una consulta web.

    En este artículo¿Qué es SQL?

    Cláusulas SQL básicas: 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

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

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

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

    ¿Qué es SQL?SQL es un lenguaje de computación que sirve para trabajar con conjuntos de datos y las relaciones entre ellos. Losprogramas de bases de datos relacionales, como Microsoft Office Access, usan SQL para trabajar con datos. Adiferencia de muchos lenguajes de computación, SQL no es difícil de leer y entender, incluso para un usuarioinexperto. Al igual que muchos lenguajes de computación, SQL es un estándar internacional reconocido pororganismos de estándares, como ISO y ANSI.

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

    SQL se usa para describir conjuntos de datos que pueden ayudarle a responder preguntas. Cuando usa SQL, debeemplear la sintaxis correcta. La sintaxis es el conjunto de reglas mediante las cuales se combinan los elementos deun lenguaje correctamente. La sintaxis de SQL se basa en la sintaxis del inglés y usa muchos de los mismoselementos que la sintaxis de Visual Basic para Aplicaciones (VBA).

    Por ejemplo, una simple instrucción SQL que recupera una lista de los apellidos de contactos cuyo nombre esMaría podría ser similar a esto:

    SELECT Last_Name

    FROM Contacts

    WHERE First_Name = 'Mary';

     NOTA SQL no se usa solo para manipular datos, sino también para crear y modificar el diseño de los objetos de

    una base de datos (por ejemplo, las tablas). La parte de SQL que se usa para crear y modificar objetos de una debase de datos se denomina lenguaje de definición de datos (DDL). En este tema no se describe el DDL. Paraobtener más información, vea el tema acerca de cómo crear o modificar tablas o índices mediante una consulta dedefinición de datos.

    Instrucciones SELECT

    Para describir un conjunto de datos mediante SQL, escriba una instrucción SELECT. Una instrucción SELECTcontiene una descripción completa del conjunto de datos que desea obtener de una base de datos. Incluye losiguiente:

    Qué tablas contienen los datos.

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

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

    Criterios que los datos deben cumplir para ser incluidos.

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

    Cláusulas SQL

    Al igual que una frase, una instrucción SQL tiene cláusulas. Cada cláusula realiza una función para la instrucciónSQL. Algunas cláusulas son obligatorias en una instrucción SELECT. En la siguiente tabla se enumeran las cláusulasSQL más comunes.

    CLÁUSULASQL

    FUNCIÓN OBLIGATORIA

    SELECT Muestra una lista de los campos que contienen datos de interés. Sí

    FROM Muestra las tablas que contienen los campos de la cláusula SELECT. Sí

    WHERE Especifica los criterios de campo que cada registro debe cumplir para poder serincluido en los resultados.

    No

    ORDER BY Especifica la forma de ordenar los resultados. No

    GROUP BY En una instrucción SQL que contiene funciones de agregado, muestra los camposque no se resumen en la cláusula SELECT. Solo si estánestos campos

    HAVING En una instrucción SQL que contiene funciones de agregado, especifica lascondiciones que se aplican a los campos que se resumen en la instrucción SELECT.

    No

    Términos de SQL

    Cada cláusula SQL consta de términos, comparables a diferentes partes de la oración. En la siguiente tabla se

    Introducción a Access SQL

    http://office.microsoft.com/es-hn/access-help/redir/HA010341600.aspx?CTT=5&origin=HA010341468http://appendpopup%28this%2C%2711663014_1%27%29/http://www.iso.org/http://www.ansi.org/http://-/?-http://-/?-http://-/?-http://-/?-http://office.microsoft.com/es-hn/access-help/redir/HA010341600.aspx?CTT=5&origin=HA010341468http://appendpopup%28this%2C%2711663014_1%27%29/http://www.ansi.org/http://www.iso.org/http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-http://-/?-

  • 8/17/2019 Introducción a Access SQL

    2/7

    6/6/2014 Introducción a Access SQL - Access

    http://office.microsoft.com/es-hn/access-help/introduccion-a-access-sq l-HA010341468.aspx 2/7

    enumeran los tipos de términos de SQL.

    TÉRMINODE SQL

    PARTE DE LAORACIÓNCOMPARABLE

    DEFINICIÓN EJEMPLO

    identificador sustantivo Nombre que se usa para identificar un objeto de labase de datos, como el nombre de un campo.

    Clientes.[Númerode teléfono]

    operador verbo o adverbio Palabra clave que representa o modifica una acción. AS

    constante sustantivo Valor que no cambia, como un número o un valor nulo(NULL).

    42

    expresión adjetivo Combinación de identificadores, operadores,constantes y funciones que se evalúa como un valorúnico.

    > = Productos.[Precio porunidad]

    Volver al principio

    Cláusulas SQL básicas: SELECT, FROM y WHEREUna instrucción SQL tiene el formato general:

    SELECT field_1

    FROM table_1

    WHERE criterion_1

    ;

     NOTAS

    Access pasa por alto los saltos de línea en una instrucción SQL. Sin embargo, conviene usar una línea para cadacláusula para que las instrucciones SQL sean más fáciles de leer por todos.

    Cada una de las instrucciones SELECT termina con un punto y coma (;). El punto y coma (;) puede aparecer alfinal de la última cláusula o solo en una línea al final de la instrucción SQL.

    Un ejemplo en Access

    A continuación se muestra el aspecto que podría tener en Access una instrucción SQL para una consulta deselección simple:

     Cláusula SELECT

     Cláusula FROM

     Cláusula WHEREEn este ejemplo de instrucción SQL, se indica "Seleccionar los datos almacenados en los campos Dirección decorreo electrónico y Empresa de la tabla llamada Contactos, específicamente aquellos registros en los cuales elvalor del campo Ciudad sea Seattle".

    A continuación se incluye un ejemplo y se describe cada cláusula para mostrar cómo funciona la sintaxis de SQL.

    Cláusula SELECT

    SELECT [E-mail Address], Company

    Ésta es la cláusula SELECT. Se compone de un operador (SELECT) seguido de dos identificadores ([Dirección decorreo electrónico] y Empresa).

    Si un identificador contiene espacios o caracteres especiales (como "Dirección de correo electrónico"), se debeescribir entre corchetes.

    Una cláusula SELECT no tiene que mencionar las tablas que contienen los campos y no puede especificar lascondiciones que deben cumplir los datos que se van a incluir.

    La cláusula SELECT siempre aparece antes que la cláusula FROM en una instrucción SELECT.

    Cláusula FROM

    FROM Contacts

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

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

    Cláusula WHERE

    WHERE City="Seattle"

  • 8/17/2019 Introducción a Access SQL

    3/7

    6/6/2014 Introducción a Access SQL - Access

    http://office.microsoft.com/es-hn/access-help/introduccion-a-access-sq l-HA010341468.aspx 3/7

    Ésta es la cláusula WHERE. Se compone de un operador (WHERE) seguido de un identificador (Ciudad="Seattle").

     NOTA A diferencia de las cláusulas SELECT y FROM, la cláusula WHERE no es un elemento obligatorio en unainstrucción SELECT.

    Puede realizar muchas de las acciones que SQL permite mediante las cláusulas SELECT, FROM y WHERE. En lassecciones incluidas al final de este artículo encontrará más información acerca de cómo usar estas cláusulas:

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

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

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

    Volver al principio

    Ordenar los resultados: ORDER BYAl igual que Microsoft Office Excel, Access permite ordenar los resultados de la consulta en una hoja de datos.Además, puede especificar en la consulta cómo desea ordenar los resultados al ejecutar la consulta mediante unacláusula ORDER BY. Si usa una cláusula ORDER BY, ésta será la última cláusula en la instrucción SQL.

    Una cláusula ORDER BY contiene una lista de los campos que desea usar para ordenar, en el mismo orden en elque desea aplicar las operaciones de ordenación.

    Por ejemplo, suponga que desea ordenar los resultados por el valor del campo Empresa en orden descendente y, en caso de que haya registros con el mismo valor para Empresa , desea ordenarlos además por el valor indicadoen el campo Dirección de correo electrónico en orden ascendente. La cláusula ORDER BY podría ser similar a lasiguiente:

    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.Volver al principio

    Trabajar con datos resumidos: GROUP BY y HAVINGEn ocasiones, es posible que desee trabajar con datos resumidos, como las ventas totales de un mes o los artículosmás caros del inventario. Para ello, debe aplicar una función de agregado a un campo en la cláusula SELECT. Porejemplo, si desea que la consulta muestre la cantidad de direcciones de correo electrónico para cada una de lasempresas, la cláusula SELECT debe ser similar a la siguiente:

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

    Las funciones de agregado que se pueden usar dependen del tipo de datos del campo o la expresión que deseaemplear.

    Especificar campos que no se usan en una función de agregado: cláusula GROUP BY

    Al usar las funciones de agregado, normalmente debe crear una cláusula GROUP BY. Una cláusula GROUP BYmuestra una lista de todos los campos a los que no se aplica una función de agregado. Si aplica las funciones deagregado a todos los campos de una consulta, no es necesario crear la cláusula GROUP BY.

    Una cláusula GROUP BY se incluye inmediatamente después de la cláusula WHERE o la cláusula FROM si no hayuna cláusula WHERE. La cláusula GROUP BY muestra una lista de los campos que aparecen en la cláusula SELECT.

    Por ejemplo, siguiendo con el ejemplo anterior, si la cláusula SELECT aplica una función de agregado a [Direcciónde correo electrónico] pero no a Empresa, la cláusula GROUP BY sería similar a la siguiente:

    GROUP BY Company

    Limitar los valores de agregado mediante los criterios de agrupación: cláusula HAVING

    Si desea usar criterios para limitar sus resultados, pero el campo al que desea aplicar el criterio se usa en unafunción de agregado, no puede usar una cláusula WHERE. En su lugar, debe usar una cláusula HAVING. La cláusulaHAVING funciona como la cláusula WHERE, pero se usa para los datos agregados.

    Por ejemplo, suponga que usa la función COUNT (que devuelve un número de filas) con el primer campo de lacláusula SELECT:

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

    Si desea que la consulta limite los resultados según el valor de la función COUNT, no puede usar un criterio paradicho campo en la cláusula WHERE. Por el contrario, debe incluir el criterio en una cláusula HAVING. Por ejemplo, sisolo desea que la consulta indique las filas en caso de que exista más de una dirección de correo electrónicoasociada con la empresa, la cláusula HAVING debería ser similar a la siguiente:

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

     NOTA Una consulta puede incluir una cláusula WHERE y una cláusula HAVING: los criterios para los campos queno se usan en una función de agregado se corresponden con la cláusula WHERE y los criterios de los campos quese usan en las funciones de agregado se corresponden con la cláusula HAVING.

    Volver al principio

    Combinar los resultados de la consulta: UNIONSi desea revisar todos los datos obtenidos en conjunto de varias consultas de selección similares, como unconjunto combinado, use el operador UNION.

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

    http://appendpopup%28this%2C%27523607814_2%27%29/http://-/?-http://-/?-http://-/?-

  • 8/17/2019 Introducción a Access SQL

    4/7

    6/6/2014 Introducción a Access SQL - Access

    http://office.microsoft.com/es-hn/access-help/introduccion-a-access-sq l-HA010341468.aspx 4/7

    deben tener el mismo número de campos de resultado, en el mismo orden y con el mismo tipo de datos o contipos de datos compatibles. Al ejecutar la consulta, los datos de cada conjunto de campos correspondientes secombinan en un único campo de resultado de modo que el resultado de la consulta tenga el mismo número decampos que cada una de las instrucciones de selección.

     NOTA A efectos de una consulta de unión, los tipos de datos Texto y Número son compatibles.

    Si usa el operador UNION, también puede usar la palabra clave ALL para especificar si los resultados de la consultadeben incluir las filas duplicadas, si existe alguna.

    La sintaxis básica de SQL para una consulta de unión que combina dos instrucciones SELECT es la siguiente:

    SELECT field_1

    FROM table_1

    UNION [ALL]

    SELECT field_a

    FROM table_a

    ;

    Por ejemplo, supongamos que tiene una tabla denominada Productos y otra tabla denominada Servicios. Ambastablas tienen campos que contienen el nombre del producto o servicio, el precio, la disponibilidad de garantía delservicio o de garantía del producto, y si el producto o servicio se ofrece de forma exclusiva. Aunque en la tablaProductos se almacena información de garantía del producto y en la tabla Servicios se almacena información degarantía del servicio, la información básica es la misma (si un producto o servicio determinado incluye una garantíade calidad). Puede usar una consulta de unión, como la que se muestra a continuación, para combinar los cuatrocampos de las dos tablas:

    SELECT name, price, warranty_available, exclusive_offer

    FROM Products

    UNION ALL

    SELECT name, price, guarantee_available, exclusive_offer

    FROM Services

    ;

    Para obtener más información acerca de cómo combinar instrucciones SELECT mediante el operador UNION, veael tema sobre cómo combinar los resultados de varias consultas de selección mediante una consulta de unión.

    Volver al principio

    Más información acerca de la cláusula SELECTEn una instrucción SELECT, la cláusula SELECT incluye los campos que contienen los datos que desea usar.

    Usar corchetes para incluir los identificadores

    Puede escribir el nombre entre corchetes para incluir el nombre de un campo en la cláusula SELECT. Si el nombre

    no contiene espacios ni caracteres especiales (como signos de puntuación), los corchetes son opcionales. Si elnombre contiene espacios o caracteres especiales, debe usar los corchetes.

     SUGERENCIA Un nombre que contiene espacios resulta más fácil de leer y le permite ahorrar tiempo cuandodiseña formularios e informes, pero es posible que luego deba escribir más al especificar instrucciones SQL. Debetener en cuenta este dato cuando asigne un nombre a los objetos de la base de datos.

    Si la instrucción SQL tiene dos o más campos con el mismo nombre, debe agregar el nombre del origen de datosde cada campo al nombre del campo en la cláusula SELECT. Debe usar el mismo nombre para los orígenes dedatos que ha usado en la cláusula FROM.

    Seleccionar todos los campos

    Si desea incluir todos los campos de un origen de datos, puede enumerar todos los campos individualmente en lacláusula SELECT o bien puede usar el carácter comodín asterisco (*). Si usa el asterisco, Access determina loscampos 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 origende datos.

    Puede usar el asterisco con uno o más orígenes de datos en una instrucción SQL. Si usa el asterisco y hay variosorígenes de datos, debe incluir el nombre del origen de datos junto con el asterisco para que Access puedadeterminar 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 dirección de correoelectrónico de la tabla de Contactos. La cláusula SELECT podría ser similar a la siguiente:

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

     NOTA Realice un seguimiento cada vez que use el asterisco. Si más adelante se agregan al origen de datosnuevos campos que no estaban previstos, los resultados de la consulta podrían no ser los deseados.

    Seleccionar valores distintos

    Si sabe que la instrucción seleccionará datos redundantes y prefiere ver solo los valores distintos, puede usar lapalabra clave DISTINCT en la cláusula SELECT. Por ejemplo, suponga que cada uno de los clientes representa variosintereses diferentes y algunos usan el mismo número de teléfono. Si desea asegurarse de que solo se vea cada

    uno de los números de teléfono una vez, la cláusula SELECT debe ser similar a la siguiente:

    SELECT DISTINCT [txtCustomerPhone]

    Usar nombres sustitutos para los campos o expresiones: palabra clave AS

    Puede cambiar la etiqueta que se muestra para cualquier campo en la vista de hoja de datos mediante la palabraclave AS y un alias de campo en la cláusula SELECT. Un alias de campo es un nombre que se asigna a un campo en

    http://office.microsoft.com/es-hn/access-help/redir/HA010341541.aspx?CTT=5&origin=HA010341468

  • 8/17/2019 Introducción a Access SQL

    5/7

  • 8/17/2019 Introducción a Access SQL

    6/7

    6/6/2014 Introducción a Access SQL - Access

    http://office.microsoft.com/es-hn/access-help/introduccion-a-access-sq l-HA010341468.aspx 6/7

    FROM [tblCustomer] INNER JOIN [tblOrder]

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

    En Microsoft Office Access, las combinaciones se producen en la cláusula FROM de una instrucción SELECT. Haydos tipos de combinaciones: combinaciones internas y combinaciones externas. En las siguientes secciones seexplican estos dos tipos de combinaciones.

    Combinaciones internas

    Las combinaciones internas son el tipo de combinación más común. Cuando se ejecuta una consulta con unacombinación interna, los únicos registros que se incluyen en los resultados de la consulta son los registros en losque existe un valor común en las dos tablas combinadas.

    Una combinación interna tiene la siguiente sintaxis (se ha agregado un salto de línea para mejorar la legibilidad):

    FROM table1 INNER JOIN table2

     ON table1.field1 compopr  table2.field2

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

    PARTE DESCRIPCIÓN

    tabla1,tabla2

    Nombres de las tablas cuyos registros se combinan.

    campo1,campo2

    Nombres de los campos que se combinan. Si no son numéricos, los campos deben ser del mismotipo de datos y contener la misma clase de datos, pero pueden tener nombres distintos.

    opcomp Cualquier operador de comparación relacional: "=", "", "=" o "".

    Combinaciones externasLas combinaciones externas son similares a las combinaciones internas porque indican a una consulta cómocombinar información a partir de dos orígenes. Son diferentes ya que también especifican si se incluirán datosdonde no hay ningún valor común. Las combinaciones externas son direccionales: se puede especificar si incluirtodos los registros del primer origen de datos especificado en la combinación (denominada combinación izquierdao left join) o incluir todos los registros del segundo origen de datos en la combinación (denominada combinaciónderecha o right join).

    Una combinación externa tiene la siguiente sintaxis:

    FROM tabla1 [ LEFT | RIGHT ] JOIN tabla2ON tabla1.campo1opcomp tabla2.campo2

    En la siguiente tabla se describen las diferentes partes de las operaciones LEFT JOIN y RIGHT JOIN.

    PARTE DESCRIPCIÓN

    tabla1,tabla2

    Nombres de las tablas cuyos registros se combinan.

    campo1,campo2

    Nombres de los campos que se combinan. Estos campos deben ser del mismo tipo de datos ycontener la misma clase de datos, pero pueden tener nombres distintos.

    opcomp Cualquier operador de comparación relacional: "=", "", "=" o "".

    Volver al principio

    Más información acerca de la cláusula WHERESi desea usar datos para limitar el número de registros devueltos en una consulta, puede usar criterios de consultaen la cláusula WHERE de una instrucción SELECT. Un criterio de consulta es similar a una fórmula: consiste en unacadena que puede incluir referencias de campos, operadores y constantes. Los criterios de consulta son un tipo deexpresión.

    En la siguiente tabla se muestran algunos criterios de ejemplo y se explica cómo funcionan.

    CRITERIOS DESCRIPCIÓN

    >25 y 30

    Este criterio se aplica a un campo de Fecha/Hora, como Fecha de nacimiento. En elresultado de la consulta se incluyen únicamente los registros en los cuales la cantidad deaños entre la fecha de nacimiento de una persona y la fecha actual es superior a 30.

    Es nulo Este criterio se puede aplicar a cualquier tipo de campo para mostrar los registros en losque el valor de campo es nulo.

    Tal como se observa en la tabla anterior, los criterios pueden ser muy distintos entre sí según el tipo de datos delcampo al que se apliquen y los requisitos específicos en cada caso. Algunos criterios son sencillos y usanoperadores básicos y constantes. Otros son complejos y usan funciones y operadores especiales, e incluyenreferencias de campo.

     IMPORTANTE Si se usa un campo con una función de agregado, no podrá especificar criterios para dicho campoen una cláusula WHERE. En su lugar, debe usar una cláusula HAVING para especificar criterios para los campos

    agregados. Para obtener más información, vea la sección Trabajar con datos resumidos: GROUP BY y HAVING.

    Sintaxis de la cláusula WHEREUna cláusula WHERE tiene la siguiente sintaxis básica:

    WHERE field = criterion

    http://-/?-http://appendpopup%28this%2C%2746888521_8%27%29/http://appendpopup%28this%2C%27771113375_7%27%29/http://appendpopup%28this%2C%27111365477_6%27%29/http://appendpopup%28this%2C%27454821335_5%27%29/http://appendpopup%28this%2C%2745140083_4%27%29/http://appendpopup%28this%2C%27273652673_3%27%29/

  • 8/17/2019 Introducción a Access SQL

    7/7

    6/6/2014 Introducción a Access SQL - Access

    http://office.microsoft.com/es-hn/access-help/introduccion-a-access-sq l-HA010341468.aspx 7/7

    Por ejemplo, suponga que desea saber el número de teléfono de un cliente, pero solo recuerda que el apellido delcliente es Bagel. En lugar de buscar en todos los números de teléfono de la base de datos, puede usar una cláusulaWHERE para limitar los resultados y encontrar más fácilmente el número de teléfono deseado. Si los apellidos sealmacenan en un campo denominado Apellidos, la cláusula WHERE será similar a la siguiente::

    WHERE [LastName]='Bagel'

     NOTA No es necesario basar los criterios de la cláusula WHERE en la equivalencia de valores. Puede usar otrosoperadores de comparación, como mayor que (>) o menor que (100.

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

    En ocasiones, es posible que necesite combinar orígenes de datos basados en los campos que contienen datos

    coincidentes, pero que tienen distintos tipos de datos. Por ejemplo, el campo de una tabla puede tener el tipo dedatos Número y es posible que desee comparar dicho campo con un campo de otra tabla que tiene el tipo dedatos Texto.

    No puede crear una unión entre campos que tienen distintos tipos de datos. Para combinar los datos de dosorígenes de datos basados en los valores de los campos que tienen distintos tipos de datos, debe crear unacláusula WHERE que use un campo como criterio para el otro campo mediante la palabra clave LIKE.

    Por ejemplo, suponga que desea usar los datos de la tabla1 y la tabla2, pero solo si los datos del campo1 (campode texto de la tabla1) coinciden con los datos del campo2 (campo numérico de la tabla2). La cláusula WHERE serásimilar a la siguiente:

    WHERE field1 LIKE field2

    Para obtener más información acerca de cómo crear un criterio para usar una cláusula WHERE, vea el tema deejemplos de criterios de consulta.

    Volver al principio

    Directorio de sitios Póngase en contacto con nosotros Enviar comentarios Legal Marcas comerciales Privacidad y cookies Accesibilidad © 2014 Microsoft Corporation. Todos los derechos rese rva 

    http://o15.officeredir.microsoft.com/r/rlidMsCom?clid=18442&CTT=114http://o15.officeredir.microsoft.com/r/rlidOOAccessibility?clid=18442&CTT=114http://o15.officeredir.microsoft.com/r/rlidOOPrivacyStatement?clid=18442&CTT=114http://o15.officeredir.microsoft.com/r/rlidTrademarks?clid=18442&CTT=114http://o15.officeredir.microsoft.com/r/rlidOOlegal?clid=18442&CTT=114http://o15.officeredir.microsoft.com/r/rlidOOFeedback?clid=18442&origin=HA010341468&CTT=114http://o15.officeredir.microsoft.com/r/rlidOOContact?clid=18442&CTT=114http://o15.officeredir.microsoft.com/r/rlidOOSiteDirectory?clid=18442&CTT=114http://office.microsoft.com/es-hn/access-help/redir/HA010341674.aspx?CTT=5&origin=HA010341468