sábado, 21 de noviembre de 2009

Permitir longitud cero

Cuando creamos nuevas tablas en Access, normalmente se realiza a través de la vista diseño de la tabla. Para modificar algo también accedemos a dicha vista. En esta entrada vamos a comentar un par de propiedades de la misma. Nos referimos a Permitir longitud cero y a Requerido.

Permitir longitud cero

Permitir longitud cero admite dos posibles valores, Sí y No. Si está con valor significa que podemos introducir una cadena de longitud cero en el campo. Esta cadena se puede puede representar como "" sin nada dentro de las comillas. Con el valor No no se admitiría esta cadena.

Requerido

La propiedad Requerido indica que ese campo no se puede dejar en blanco, sin datos. Todos los campos pertenecientes a la clave principal de una tabla tienen la obligación de poseer datos, no pueden estar vacíos. El resto de campos no tienen, en principio, esa obligación. Pero si la propiedad Requerido de un campo está a , significa que no podemos dejar de introducir datos en ese campo. Necesariamente introduciremos información para cumplir con la exigencia de esta propiedad.

Sin embargo, puede ocurrir que, en ciertas ocasiones, no tenemos el dato para ese campo y resulta que con Requerido activado, Access nos obliga a introducir información en el mismo. ¿Qué podemos hacer? Si la propiedad permitir longitud cero está activada (valor Sí), que hacemos es pulsar la barra espaciadora, y de esta forma podemos pasar a otro campo sin problemas. Más tarde, con la información en nuestras manos, introducimos el dato sin problemas.

En definitiva, ambas propiedades están relacionadas. Con permitir longitud cero y requerido a sí podemos dejar la introducción de datos para más tarde. Si tuviésemos requerido a si y permitir longitud cero a no, entonces Access no permite introducir una cadena de longitud cero en el campo, y estaremos obligados a introducir información, dar a la barra espaciadora no se permite.

lunes, 9 de noviembre de 2009

Relación de varios a varios

Vamos a seguir trabajando el tema de las relaciones entre tablas. Después de ver las relaciones uno a varios y uno a uno, ahora toca ver la relación varios a varios. En este tipo de relación un registro o fila de una tabla puede estar relacionado con varios registros o filas de la segunda tabla. Por el otro lado, un registro de la segunda tabla puede estar relacionado con una o varias filas de la primera tabla.


Con esta entrada vamos a ver el proceso de construcción de una relación de varios a varios entre dos tablas. Hemos construido una base de datos llamada atletismo. Creamos dos tablas, una a la que denominamos Pruebas. Esta es su vista diseño:




La otra tabla, Atletas, contiene los datos de los atletas que compiten en las distintas pruebas:





Para poder establecer la relación entre ambas tablas, Access necesita otra tabla. Servirá para poder establecer una relación de varios a varios. La tabla intermedia para este caso la llamaremos Marcas, donde guardaremos los tiempos, distancias, saltos obtenidos en las distintas pruebas por los atletas:






En esta tabla, como vemos, hemos llevado una copia de las claves principales de las tablas pruebas y atletas. Su clave principal va a estar formada por tres campos: IdAtleta, IdPrueba y fecha. Se ha incluido fecha como parte de la clave principal, para tener en cuenta que cada atleta pueda participar en una prueba varias veces por existir series clasificatorias. Recordando, para establecer una clave principal compuesta por varios campos, es preciso seleccionar previamente esos campos y después haremos clic sobre el botón clave principal.

Ahora que tenemos las tablas necesarias vamos a construir la relación. Abrimos la ventana de relaciones, también se abre la ventana mostrar tabla. En la misma seleccionamos las tablas con las que vamos a construir la relación:

Seleccionamos las tres tablas con la tecla de control pulsada, pulsamos en agregar y cerramos esta ventana. El resultado es que la ventana Relaciones contiene las tres tablas.
A continuación, creamos las relaciones. En primer lugar, con el ratón arrastraremos el campo IdPrueba, de la tabla Pruebas, al campo IdPrueba de la tabla Marcas. Se abre la ventana Modificar las relaciones donde se observan las propiedades de la relación recién creada, como se observa en la siguiente imagen. En la misma, marcamos las propiedades de integridad referencial para evitar pérdidas accidentales de datos. Al final de la ventana vemos que esta relación de uno a varios. La razón es que una prueba puede estar relacionado con varios atletas con sus correspondientes marcas.




Repetimos este proceso entre las tablas Atletas y Marcas. Llevaremos el campo IdAtletas, de la tabla Atletas, a su copia, IdAtleta de la tabla Marcas. De esta forma queda creada otra relación de uno a varios entre Atletas y Marcas. Las propiedades de esta relación quedan visibles en la siguiente imagen:

Pulsando en el botón Crear la ventana se cierra quedando visibles las relaciones. El conjunto de las dos relaciones forman una relación de varios a varios entre las tablas Pruebas y Atletas. La siguiente imagen muestra las relaciones establecidas:



Es sencillo reconocer una tabla intermedia que permita construir una relación de varios a varios, si en la ventana Relaciones observamos una tabla cuya clave principal esté formada por varios campos, nos dará la pista de que es una tabla intermedia que forma parte de una relación de varios a varios.

Conclusión

En definitiva, para construir esta relación necesitamos una tabla adicional, Marcas, y crear dos relaciones. Las relaciones se crean entre una clave principal y su copia de la otra tabla, siendo esta la clave secundaria. El conjunto de los campos IdAtleta, IdPrueba y Fecha constituyen la clave principal de la tabla intermedia Marcas.

viernes, 6 de noviembre de 2009

Relaciones en Access: Uno a uno

Dado el desarrollo del tema dejamos para otra entrada la relación varios a varios. Aqui vamos a tratar de explicar un poco en que consiste la relacion uno a uno entre dos tablas. La relación, más común, uno a varios la vimos en una entrada anterior.

La relación de uno a uno es la relación menos común de todas. Es dificil encontrar este tipo de relación. Debido a que es escasa su presencia, creo que esta entrada pretende aclarar un poco en que consiste y como se construye.

Esta relación indica una relación en la que un registro de una tabla solo puede estar relacionado con un solo registro de la tabla en el otro lado de la relación y viceversa.

Esta relación puede servir para representar, por ejemplo, cierta actividad que realizan determinados trabajadores de una empresa.

Realmente este tipo de relación se tiende a evitar introduciendo los datos de una tabla en la otra.


Vamos a ver ahora como se construye en Access una relación de uno a uno. Para ello en primer lugar creamos dos tablas: aulas y cañones. Con ellas se pretende representar la realidad de un centro educativo. En cada aula existe un cañon. La clave principal de la tabla Aulas es IdAula. La clave principal de la tabla Cañones es IdCañon.

Para construir esta relación vamos a la ventana relaciones. Se abre pinchando en el botón Relaciones . Si ambas tablas no están las incorporamos desde la ventana Mostrar tabla.
Arrastramos la clave principal Idaula al campo IdCañon. En ese momento se abre la ventana Modificar relaciones que es como la que se ve en la siguiente figura. En la misma marcamos la opción Exigir integridad referencial. No es necesario marcar las opciones de actualizar y eliminar puesto que los campos que intervienen en la nueva relación son clave principal de sus respectivas tablas.


Al relacionar de esta forma ambas tablas, la ventana de la relacion recién creada muestra nos dice que tipo de relación es, lo podemos observar en la parte final de la misma.
A contnuación pulsamos en el botón aceptar, la ventana se cierra y se muestra la nueva relación en la ventana Relaciones tal como vemos en la siguiente imagen:

Los unos en negrita que aparecen nos indican como están relacionadas ambas tablas. Ahora podremos saber en que aula está cada cañon.
Resumiendo, podemos decir que este tipo de relación es la menos habitual. Por eso es interesante mostrar como se construye este tipo de relación. Entre dos tablas que tienen este tipo de relación un registro o fila de una de ellas está relacionado con un solo registro o fila de la tabla. En el otro sentido ocurre exactamente lo mismo.

martes, 20 de octubre de 2009

Como dar color a un campo en una tabla de Access

Para mejorar la presentación de una tabla, podemos cambiar su aspecto a través del menú formato. Podemos modificar las propiedades del fondo, del color o de las líneas que establecen la división entre las distintas celdas que componen la tabla. No importa donde tengamos el cursor, la propiedad que se aplique afecta a toda la tabla.

Puede ocurrir, en un momento dado, que nos interese que solo un campo adquiera el color que nos interesa, pero que no afecte a los demás campos. La siguiente imagen nos muestra lo que pretendemos lograr:


En esta entrada pretendemos mostrar como lograr esto. El campo NombreProducto está en azul. Vamos a ver como lograr este efecto.
En primer lugar vamos a la vista diseño de la tabla Productos. En la mitad superior seleccionamos el campo sobre el que deseamos cambiar el color. A continuación vamos a la mitad inferior y nos posicionamos en la propidedad formato. Para establecer el color se abren corchetes y se escribe el color. Se cierra el corchete quedando el nombre del color dentro. Solo nos queda asociar el color a las mayúsculas o minúsculas. En este caso optamos para el contenido del campo NombreProducto aparezca en mayúsculas. Por tanto, ponemos el símbolo > antes del primer corchete como se ve en la imagen:




Guardamos estos cambios y pinchamos en el botón vista Hoja de datos. El resultado es:

Si quisiéramos que el primer carácter de los datos de NombreProducto esté en mayúsculas y el resto de caracteres estén en minúsculas la propiedad de formato deberá ser así:

El resultado que producirá será la primera imagen de esta entrada. Si ponemos solo el color entre corchetes no producirá ningún efecto sobre el campo:

Recordamos que el color aplicado debe acompañarse siempre sobre poner el campo en mayúsculas o minúsculas.

miércoles, 7 de octubre de 2009

Concepto de base de datos

En la sociedad que vivimos la información juega un papel primordial. Resulta interesante que dicha información esté ordenada, disponible.

Normalmente las empresas gestionan gran cantidad de información. Para una correcta utilización de sus recursos, hay que obtener y gestionar sus datos rápida y eficientemente. En estos tiempos, hacerlo a mano, resulta claramente ineficiente y pueden cometerse errores con cierta frecuencia debido a la gran cantidad de datos que nos puede tocar procesar.

Ese volumen de datos los podemos gestionar con un software adecuado, que permita añadir, eliminar o modificar la información guardada. La gestión de datos es llevada a cabo de lo que denominamos Sistema de Gestión de Base de Datos, también conocido por sus iniciales, SGBD.

Dicho gestor hace de base de datos (contiene los datos), y además es el programa o software que nos gestionará los datos de la base de forma adecuada.

El SGBD más conocido y utilizado es Microsoft Access.

Características de Access:

  • Es relacional
  • Es persistente
  • Es estructurado
Cuando se dice que es relacional, estamos diciendo que los datos se distribuyen en tablas, y que éstas están relacionadas. La persistencia nos habla de que los datos se almacenan en archivos y por tanto, los tenemos perfectamente guardados. Al ser un sistema gestor relacional nos indica que los datos se almacenan en distintas tablas relacionadas, y en éstas, los datos se distribuyen en distintos registros. La información está estructurada.

Podemos recordar que una base de datos relacional trata de representar una realidad determinada. Los datos almacenados se distribuyen en distintas tablas, y para obtener la información que nos interesa de esa base de datos se usa el sistema gestor, Access.

miércoles, 30 de septiembre de 2009

Otra forma de crear pies y encabezados de página

Cuando trabajamos con un procesador de textos la forma habitual de generar distintos pies de página en un documento es insertar saltos de sección. Así, en cada sección se podrán colocar encabezados o pies de página diferentes. En este post vamos a ver otra forma de hacerlo. No vamos a usar ningún salto de sección. Nos apoyaremos en el uso de campos.

Vamos a partir de un documento que contiene 3 páginas cuya vista preliminar es la siguiente (puede ser cualquier texto, no vamos centrarnos en esto):


En este ejemplo vamos a colocar un pie de página para las dos primeras páginas y otro distinto para la última página. Iremos al menú Ver y seleccionaremos Encabezado y píe de página. Se mostrará el encabezado como un cuadro rayado y además aparece el menú Encabezado y pie de página:



En el menú pulsamos en el botón Cambiar entre encabezado y pie para que el cursor quede situado en el pie de página. Ahora pulsamos la combinación de teclas Ctrl + F9 con lo que aparacer un par de llaves como muestra la imagen:

Dentro de las llaves escribiremos If:


A continuación volvemos a pulsar Ctrl + F9 apareciendo nuevas llaves:



Colocamos el cursor dentro de estas llaves donde escribiremos numpages, que contiene el número de páginas que tiene el documento. Podemos usar operadores en la expresión if y teclearemos el símbolo >. Volvemos a pulsar Ctrl + F9 y en las nuevas llaves escribimos page que contiene el valor de la página actual. Así hemos establecido una condición lógica que devolverá verdadero o falso dependiendo en cada página del valor de la misma.

Esta condición nos dice que pasará algo si la página es cualquiera que no sea la última, y pasará otra cosa si es la última.

Si se verifica la condición queremos que aparezca en el pie de página la frase Continua en la siguiente página. Dentro de la expresión la tecleamos sin olvidarnos de escribirla entre comillas. Para el pie de la última página deseamos tener la frase Última página también escrita entre comillas. La imagen siguiente trata de aclararlo:


Toda la expresión que acabamos de escribir sigue la estructura condición valor_si_ verdadero valor_si_falso. Si la condición se cumple aparecerá la frase que hemos escrito en primer lugar, y en caso contrario aparecerá la frase escrita en segundo lugar.

Yendo al menú Insertar Campo y en el cuadro nombres de campo seleccionamos if observamos la estructura que hemos comentado:

Para comprobar todo esto salimos del pie de página haciendo doble clic en el texto del documento. A continuación pulsamos la combinación de teclas ALT + F9. De esta forma se muestran las frases que hemos escrito al final de la estructura del if.

Para las primeras páginas tenemos el siguiente pie:


La página que no cumple la condición que hemos establecido presentará un pie distinto:


sábado, 29 de agosto de 2009

Relacionar tablas en Access (II)

En este post se pretende aclarar un poco más la relación de uno a varios explicado en una entrada anterior.


En dicha entrada comentábamos que un registro de la tabla Proveedores puede estar relacionado con varios registros de la tabla productos pero un registro de la tabla productos solo puede estar relacionado con un registro de la tabla proveedores.


Visualmente se observa en la siguiente imagen:


Como se observa, el proveedor Frutas del Norte (Idproveedor = 1) hasta ahora, ha suministrado 3 productos distintos. Lo podemos observar en las tablas por el campo Idproveedor. En productos, tenemos el campo Idproveedor que nos dice que proveedor, ya introducido en la tabla proveedores, suministra ese producto. Y de la misma forma con el resto de productos. El segundo proveedor los siguientes 3 productos y el proveedor cuyo id es 3 suministra los 3 últimos productos (ver imagen anterior).



Una vez establecida la relación entre las dos tablas, lo que no se podrá hacer es introducir un idproveedor en la tabla productos que no exista previamente en la tabla productos. La razón es que en la relación la tabla proveedores es el lado de uno y la de productos es la de el lado de varios.

Actualizar tablas en Excel

En el siguiente ejercicio vamos a ver como actualizar tablas en excel. Nos centraremos en modificar unos precios con código VBA. Modificare...