Archivo de etiquetas tablas

PorLucía Montero Rodríguez

SQL: utilizar campos situados en tablas distintas

Como lo prometido es deuda, tras un breve parón, retomamos nuestro tutorial de Access para ver cómo podemos mostrar mediante SQL campos que se encuentran situados en diferentes tablas relacionadas entre sí. Para practicar, emplearemos como ya es habitual nuestra base de datos librería.mdb.

Comenzaremos por algo sencillo, simplemente una consulta que muestre el Nombre, Apellidos y Provincia de cada cliente; pero primero vamos a recordar las relaciones existentes en la base de datos:

Relaciones de la base de datos Libreria

La clave para que la consulta funcione correctamente reside en la forma de indicar qué campos de ambas tablas forman la relación. Para ello, podemos emplear dos opciones diferentes. Pero eso es algo que indicaremos tras especificar los campos y tablas que deseamos utilizar.

Relaciones mediante WHERE

Tras la cláusula FROM emplearemos la instrucción WHERE para indicar qué campos deben coincidir entre sí. Por ejemplo:

SELECT clientes.nombre,clientes.apellidos,ciudades.nombre

FROM clientes,ciudades

WHERE clientes.codciudad=ciudades.codciudad;

Como en este caso, teníamos dos campos con la misma denominación (Nombre) ha sido necesario anteponer la tabla para indicar con cuál exactamente queríamos trabajar. El resultado debe ser similar al que ahora mostramos en la figura:

Consulta SQL entre tablas relacionadas mediante WHERE

Relaciones mediante INNER JOIN

Si empleamos la versión SQL en Access, podemos utilizar la instrucción INNER JOIN para indicar la relación existente, dejando WHERE para establecer criterios de filtrado adicionales; por ejemplo para el caso anterior:

SELECT clientes.nombre,clientes.apellidos,ciudades.nombre

FROM clientes

INNER JOIN ciudades ON clientes.codciudad=ciudades.codciudad;

Fíjate bien porque hay cambios. Ahora en FROM sólo hemos indicado una de las tablas (Clientes), la otra se especifica tras INNER JOIN (ciudades) y tras ON debemos establecer los campos a coincidir.

Por supuesto, el resultado final es el mismo que en el primer caso, pero podemos mejorarlo un poquito recordando que AS nos permite incluir títulos de columnas. Por ejemplo:

SELECT clientes.nombre AS Nombre,clientes.apellidos AS Apellidos,ciudades.nombre AS Ciudad

FROM clientes

INNER JOIN ciudades ON clientes.codciudad=ciudades.codciudad;

Consulta SQL entre tablas relacionadas con título de columnas mediante INNER JOIN

Además, en Access podemos emplear dos variantes para relaciones más personalizadas: INNER LEFT e INNER RIGHT.

Relaciones y criterios

Vamos a complicar ligeramente el supuesto anterior, ya que ahora sólo nos interesa mostrar los clientes de Sevilla o de Cádiz, por lo que deberemos añadir el filtro.

Para el primer caso, con la instrucción WHERE, necesitaremos escribir la condición que añadiremos a la anterior mediante AND:

SELECT clientes.nombre AS Nombre,clientes.apellidos AS Apellidos,ciudades.nombre AS Ciudad

FROM clientes,ciudades

WHERE (clientes.codciudad=ciudades.codciudad) AND (ciudades.nombre IN("Sevilla","Cádiz"));

Mediante INNER JOIN sólo tendremos que incluir tras la misma la instrucción WHERE correspondiente, tal y como vimos en la entrada dedicada a Consultas SQL de selección con criterios, quedando su escritura como te mostramos a continuación:

SELECT clientes.nombre AS Nombre,clientes.apellidos AS Apellidos,ciudades.nombre AS Ciudad

FROM clientes

INNER JOIN ciudades ON clientes.codciudad=ciudades.codciudad

WHERE ciudades.nombre IN("Sevilla","Cádiz");

En ambos casos, el resultado sólo mostrará cuatro registros que cumplen la condición especificada:Consulta SQL entre tablas relacionadas con criterio usando INNER JOIN y WHERE

Utiliza SQL para relacionar con facilidad campos con diferentes orígenes

PorLucía Montero Rodríguez

Copia una tabla de Word a Excel sin morir en el intento

Hace tiempo vimos cómo copiar una tabla situada en una hoja de cálculo a un documento de Word. Sin embargo, nuestra propuesta para hoy, es justo la contraria.

A continuación vamos a ver diferentes tipos de tablas o listas que pueden existir en Word, que trataremos de aprovechar en Excel, viendo el resultado que se produce en función del origen.

Tabla clásica cuadriculada

Comenzamos por la opción más sencilla, una tabla completamente cuadriculada, formada por X filas y columnas.

Tabla clásica cuadriculada

Los pasos a seguir para realizar el proceso completo serán los siguientes:

  • seleccionar la tabla completa en Word
  • enviarla al portapapeles,
  • activar una celda en una hoja de cálculo
  • pegar

Resultado en Excel al copiar una tabla cuadriculada desde Word

Es fácil comprobar cómo, en este caso, Excel ha respetado completamente el formato original.

Tabla con celdas combinadas

Veamos el siguiente caso, en la tabla que aparece en la imagen tenemos una celda combinada.

Tabla en Word con una celda combinada

Empezamos siguiendo la misma operativa que en el caso anterior, pegando el contenido a partir de B2, para percibir mejor el resultado final.

A pesar de no ser exactamente el mismo, lo cierto es que el aspecto no es malo, y además fíjate en la opción que Excel nos propone: podemos elegir si deseamos que el formato de las celdas sea el de origen o bien, el que ya existiera en la hoja anteriormente. Interesante ¿verdad?

Resultado en Excel al copiar una tabla con una celda combinada desde Word

Vamos a ponerlo un poco más complicado, ahora ya tenemos celdas combinadas de diferentes tamaños, así como distintos filetes o líneas.

Tabla en Word con diferentes celdas combinadas

¿Cuál será el resultado en Excel si ejecutamos un Copiar y Pegar simple? Compruébalo en la siguiente imagen.

Resultado en Excel al copiar una tabla con diferentes celdas combinadas desde Word

A pesar de no respetar de manera fidedigna el formato original, el producto sigue siendo claramente aprovechable, aunque tendríamos que trabajarlo un poquito para afinar el resultado final.

Lista Tabulada

Pero como no sólo de tablas vive el hombre o la mujer, vamos a aprovechar la siguiente lista, estructurada mediante tabulaciones, ejecutando el proceso habitual Copiar y Pegar.

En este caso, un factor clave es la manera de seleccionar el texto, hazlo por filas completas, como si fueras a modificar los tabuladores asignados.

Ejemplo de lista tabulada en Word
El resultado pierde, lógicamente, el carácter de relleno, pero sigue siendo perfectamente válido:

Resultado en Excel al copiar una lista tabulada desde Word

Pegado especial

En cualquier caso, recuerda que en Excel puedes utilizar también la opción de Pegado Especial, que nos puede ofrecer alternativas interesantes según nuestras necesidades. Por ejemplo, para el último caso expuesto:

Opciones del cuadro Pegado especial en Excel

Si escogemos Texto (plano), el resultado en la hoja sería muy simple pero adaptable:

Resultado en Excel al copiar una lista tabulada desde Word como Texto

Y volvemos a insistir, dependiendo de cada situación, podría interesarnos incluso más pegar como Objeto (para después modificarlo directamente), Imagen o incluso Hipervínculo; todo dependerá de las operaciones que vayamos a realizar con los datos en Excel.

PorLucía Montero Rodríguez

Utiliza el asistente para Importar tablas de PowerPivot

En artículos anteriores aprendimos qué es PowerPivot y los tipos de datos admitidos. Así que ya es hora de comenzar a trabajar, empezando por ver cómo podemos importar tablas.

Tablas de una base de datos de Access

Utiliza el asistente para importar tablas en PowerPivotPowerPivot nos puede ayudar fácilmente a importar tablas de una base de Access mediante un asistente. Sin embargo, para que ésto sea posible, es necesario que las relaciones estén previamente creadas.

Para contar con un ejemplo de calidad y datos suficientes que permitan obtener resultados representativos, vamos a utilizar como referencia los archivos de Contoso. Se trata de una base de datos que Microsoft pone al alcance de los usuarios para poder efectuar prácticas.

Si ya lo tienes todo preparado, en la cinta PowerPivot, pulsa el primer icono: Ventana de PowerPivot. Ahora, en  el icono Desde base de datos, haz clic sobre De Access para iniciar el asistente. En esta primera parte es suficiente con asignar un nombre distinto y escoger el archivo adecuado. En este caso, Contoso Sales.

Asistente de PowerPivot para importar tablas

Ahora puedes optar por seleccionar directamente los datos en las tablas/vistas o crear una consulta SQL. Nosotros como estamos empezando, vamos a decantarnos por la primera opción y pulsamos Siguiente.

A continuación hay que marcar todos los elementos que deseamos traernos a PowerPivot. Para nuestro ejemplo, supongamos que nos interesan todas las tablas menos la dedicada a las promociones DimPromotion.

Llegados a este punto, también es posible filtrar las tablas para escoger solamente registros y/o campos específicos. Por ejemplo, selecciona la tabla DimProduct y pulsa el botón Vista previa y filtro que está situado en la esquina inferior derecha del cuadro de diálogo.

Filtros y selección al importar tablas para PowerPivot

En la imagen puedes ver que se han desmarcado las columnas Manufacturer y Brandname; además, hemos aplicado un filtro en ClassName para importar sólo los registros de tipo Economy. Tras Aceptar el cuadro de diálogo mostrará el indicativo Filtros aplicados en la columna de la derecha.

Si no necesitas nada más, es el momento adecuado para pulsar Finalizar. Tras efectuar las distintas operaciones, Excel mostrará un cuadro de resultados del proceso y ya estaremos listos para continuar, pero eso será én futuros artículos.

Informe de resultados al importar tablas para PowerPivot

Con el Asistente de PowerPivot, puedes importar tablas fácilmente. ¡Empieza ya a practicar!

 

PorLucía Montero Rodríguez

Tablas en Access: Propiedades básicas – Segunda parte

En esta entrada dedicada a Access, seguimos hablando de las propiedades más comunes relacionadas con tablas. Aunque ya vimos algunas en el post Tablas en Access: Propiedades básicas – Primera parte.

Así que vamos a continuar comentando diferentes propiedades que podemos asociar en función de los tipos de campo existentes en una tabla.

Lugares decimales

En campos de carácter numérico, se utiliza para indicar cuántos decimales nos interesa mostrar por pantalla. Por ejemplo, para el campo Precio de la figura, hemos asignado 3 decimales.

Propiedad de tabla Lugares decimales

Regla de validación

Permite establecer distintas condiciones para aceptar como bueno el valor que se escriba dentro del campo.

Como ejemplo, suponemos que en la librería que estamos controlando no se venden libros con un valor superior a 50€, por lo que hemos escrito la condición <=50 en el campo Precio; de esta forma, es posible prevenir errores. Fíjate como está escrita la regla en la imagen anterior.

Texto de validación

Estrechamente relacionada con la propiedad anterior, se utiliza para indicar el mensaje que aparecerá cuando se escriba un valor que incumpla la Regla de validación. Con el mensaje que puedes ver escrito en la figura anterior, el resultado sería el siguiente:

Propiedad de tabla Texto de validación

Alineación del texto

Modifica la alineación horizontal del dato escrito en el campo. Por defecto, los campos de tipo texto son alineados a la izquierda y las fechas, así como los numéricos a la derecha, pero en la imagen inferior del ejemplo, puedes ver cómo la Fecha de la factura aparece centrada, ya que hemos escogido el valor Centro para esta propiedad.

Propiedad de tabla Selector de fechas

Mostrar el selector de fechas

Si otorgamos el valor Para fechas en esta propiedad, en el modo de Entrada de datos aparecerá un pequeño icono en el campo, que permitirá elegir o seleccionar la fecha directamente en el calendario, en lugar de escribirla como un valor. Mira la anterior captura de la pantalla, para ver el resultado.

Prueba a modificar distintas propiedades y ver cómo puedes mejorar el resultado en pantalla.

PorLucía Montero Rodríguez

Cómo introducir datos en una tabla de Access

Puede que el titular parezca fácil a priori, y de hecho muchas personas con un conocimiento básico de Access, se lanzarían a abrir por ejemplo la primera tabla de la lista y empezar a picar datos; pero si no quieres provocar errores hay que aprender a efectuar la escritura de la información de manera correcta.

Antes de comenzar a escribir datos en una tabla

Nuestro punto de partida va a ser una base de datos sencilla, que controlará los exámenes que realizan los alumnos de un colegio, teniendo en cuenta que cualquier profesor puede vigilar o controlar un examen, pero que sólo puede impartir clases de una única asignatura.

Tras definir las tablas y hacer las relaciones como se indicaban en el post Tipo de relaciones, hemos obtenido un diagrama similar al siguiente:

Relaciones en la base de datos Colegio

¿Ya puedo introducir los datos?

Si las tablas están correctamente definidas y enlazadas, el siguiente paso natural es, precisamente, escribir la información que se debe almacenar, operación que podemos realizar directamente en la tabla.

Sin embargo, para no tener ningún problema deberemos comenzar SIEMPRE por las tablas auxiliares, que en este caso sólo hay una, (Asignaturas), luego seguir por las dependientes (Alumnos Profesores), hasta llegar a la principalExamenes.

Tablas de la base de datos Colegio

Vamos a comenzar con Asignaturas, por lo que simplemente hacemos un doble clic sobre el nombre de la tabla, para abrir la vista Hoja de datos.

Tabla en vista Hoja de datos

Como la clave principal de la tabla, el campo casig, se ha definido como de tipo Autonumeración, no es necesario indicar el código de la asignatura, sino que simplemente pulsaremos el tabulador y pasaremos a escribir las distintas denominaciones. El resultado final puede ser parecido al de la figura:

Tabla auxiliar de Access con datos

Una vez añadidos los datos en la tabla auxiliar, podemos introducir los correspondientes a las tablas Alumnos Profesores. El problema se plantea, por ejemplo, cuando tenemos que asignar una asignatura a un profesor; ya que a pesar de haber relacionado las dos tablas, la tarea no será fácil, porque si no indicamos nada en contra, DEBEREMOS ESCRIBIR directamente el código de la materia que imparte, ya que no aparecerá ninguna lista para elegirlo.

Tabla de Access con campos que se alimentan de otra distinta

En este caso, la situación ideal para el campo casig es que aparezca un desplegable que ofrezca al usuario directamente los datos de la tabla Asignaturas; y si no recuerdas cómo hacerlo, sólo tienes que consultar el artículo dedicado al Asistente de búsquedas.

¿Te ha quedado claro?

Espero que con esta explicación te haya quedado claro que el orden a la hora de introducir datos en una tabla de Access es muy importante para no cometer errores.

Hay que comenzar por las tablas auxiliares, seguir con las dependientes y acabar con la tabla principal.

Si, por ejemplo, hubiéramos comenzado con Profesores sin tener datos en Asignaturas, al existir integridad referencial provocaríamos un error al intentar grabar el registro; así que ten mucho cuidado y sigue los pasos correctos.