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.

lunes, 24 de agosto de 2009

Bloquear determinadas celdas en Excel

En ciertas ocasiones puede ser interesante que determinadas celdas no puedan cambiar su contenido, bien accidentalmente bien porque un usuario no habitual lo borre.

Todas las celdas por defecto están bloqueadas. Si queremos bloquear solo unas cuantas, y en las demás vamos a permitir introducir o modificar datos, lo primero que vamos a hacer es desbloquear todas las celdas.

En primer lugar seleccionamos todas las celdas de la hoja de cálculo, pulsamos en el cuadro que está encima del 1 que nos marca la primera fila (o debajo del cuadro de nombres).

Después vamos a Formato / Celdas y seleccionamos la pestaña Proteger que nos muestra la siguiente ventana:

Como hemos dicho, por defecto está marcado, se desactiva esa marca y todas las celdas dejan de estar bloqueadas.

El siguiente paso consiste en seleccionar aquellas celdas que queremos bloquear para salvar su contenido.

Volvemos a formato / celdas donde marcamos la casilla Bloqueada en la pestaña Proteger. Así las celdas que tenemos seleccionadas vuelven a estar bloqueadas. El resto de celdas no.

Por último, ya podemos proteger la hoja con contraseña o sin ella. Vamos al menú herramientas donde seleccionamos Proteger / Proteger hoja...:
Aparece la siguiente ventana:

Como vemos, podemos establecer contraseña para que nadie nos desproteja la hoja sin nuestro permiso. Ahora solo se podrán introducir datos en las celdas desbloqueadas.
Con estos pasos podemos tener las celdas que nos interesen bloqueadas.
Para desproteger las celdas volveríamos a Herramientas /Proteger y en el menú ahora se tiene la opción de desproteger la hoja.

viernes, 21 de agosto de 2009

Como relacionar tablas en Access (I)

Access es un tipo de bases de datos relacional. Esto significa que los datos se guardan en distintas tablas, y las mismas están relacionadas entre si. Existen varios tipos de relaciones entre las tablas. En este post nos vamos a centrar en el tipo de relación más habitual, de uno a varios. Además vamos a ver como se construye, que significa y que nos va permitir trabajar con varias tablas a la hora de elaborar consultas o formularios.

Existen básicamente tres tipos de relaciones entre tablas:
  • De uno a uno
  • De uno a varios
  • De varios a varios
En Access los datos se almacenan en distintas tablas. Para tener bien diseñada la base de datos debemos relacionar adecuadamente las distintas tablas que componen la base de datos.

La relación de uno a varios es la más común de las relaciones, supone el 90% de todas las relaciones que se hacen. Nos va a permitir relacionar dos tablas.

En este tipo de relación, un registro de una tabla puede estar relacionada con varios registros de otra tabla.

En cambio, un registro de la segunda tabla solo puede estar relacionado con un registro de la primera tabla. La mejor forma de entender esto mostrando un ejemplo.

Tenemos una base de datos a la que he llamado Datos. Contiene dos tablas: Proveedores y Productos. Suponemos que cada proveedor puede suministrar varios productos y que cada producto solo puede tener origen en un solo proveedor.

Eso significa que cada proveedor puede estar relacionado con varios productos. Dicho de otro modo, un registro (o fila) de la tabla Proveedores puede estar relacionado con varios registros de la tabla Productos.

Así mismo, por el otro lado, un producto solo puede estar relacionado con un proveedor, es decir, un registro de la tabla Productos solo puede estar relacionado con un registro de la tabla Proveedores.

Por tanto, la tabla Proveedores tiene una relación de uno a varios con la tabla Productos. En la relación, el lado 1 es la tabla Proveedores y el lado de varios es la tabla Productos (un proveedor puede suministrar varios productos).

Construcción de la relación en Access

Ahora vamos a ver como se implementa esta relación con la base de datos Access.
Tenemos una base de datos de Access llamada Datos. En la misma tenemos dos tablas, Proveedores y Productos.
Para crear una relación, del tipo que sea, abrimos la ventana de Relaciones donde estableceremos la relación entre productos y proveedores. Para abrirla, pinchamos con el botón derecho en el fondo blanco de la ventana de la base de datos, como se observa en la siguiente imagen:


Al hacerlo se abren dos ventanas, Relaciones y mostrar tabla.

En la ventana mostrar tabla seleccionamos con el ratón la tabla proveedores y pulsamos en el botón Agregar. Hacemos lo mismo con la tabla Productos. Ahora cerramos la ventana mostrar tabla.
Para poder establecer este tipo de relación vamos a abrir la vista diseño de la tabla Productos (es la tabla del lado de varios en la relación que estamos construyendo). Pulsamos con el botón derecho en Productos y seleccionamos Diseño de la tabla, mostrándose la vista diseño de productos:

Para poder establecer la relación con proveedores, vamos a añadir un nuevo campo en la tabla productos. Será un campo del mismo tipo que Idproveedores de la tabla proveedores, número. Después de añadir el nuevo campo la vista diseño queda así:



Cerramos la vista diseño, guardamos los cambios y volvemos a visualizar la ventana relaciones. Ahora ya podemos crear la relación. Llevaremos con el ratón idproveedores (de proveedores) al campo recién creado idproveedor de la tabla producto. Ahora se visualiza la ventana modificar la relación donde marcamos Exigir integridad referencial, Actualizar... y Eliminar...


Pulsaremos en el botón Crear y la relación ya está creada. La imagen de la nueva relación se muestra a continuación:

Cerramos la ventana relaciones guardando los cambios y ya podemos seguir trabajando en la base de datos.
En los siguientes posts veremos la relación de varios a varios y de uno a uno.

jueves, 20 de agosto de 2009

Número de elementos no repetidos en una lista

Una hoja de cálculo Excel permite introducir largas listas de elementos. En ocasiones será necesario contabilizar cuantos elementos existen en una lista sin tener en cuenta las repeticiones de los elementos. Vamos exponer a continuación como contar los elementos de una lista sin tener en cuenta las repeticiones que pudieran haber.

La función contara realizaría el contaje pero teniendo en cuenta todos los elementos. Por tanto no nos sirve para este cometido. La función que nos a servir es la función bdcontara.

Dicha función, como otras funciones de base de datos, cuenta con tres argumentos:

bdcontara(base de datos; nombre del campo; criterios)

  • Base de datos: rango de celdas que componen la base de datos
  • Nombre del campo: Argumento opcional, indica la columna que usa la función. Podemos colocar el nombre del campo entre comillas, o colocar el número del campo, sin comillas.
  • Criterios: Es el rango de celdas que contienen las condiciones para que se puedan contar.
Ahora vamos a ver que valores han de tener estos argumentos para conseguir el número de entradas no repetidas. En pirmer lugar la lista que nos va servir de base de datos (primer argumento) está colocado en la columna A:



El segundo argumento, nombre del campo, lo dejamos vacío. Y como tercer argumento vamos a hacer uso de la función contar.si. Como es una condición debe devolver o verdadero o falso. No puede devolver otra cosa.

Como vemos, hemos usado una referencia absoluta, $A$2 y otra relativa, A2. Esto nos va permitir contabilizar los distintos elementos cuando no están repetidos pero no los repetidos pues la función contar.si devuelve un valor superior a 1. El texto Condición y la función contar.si están en el rango C1:C2

En la imagen siguiente, se ve como hemos implementado estos argumentos de bdcontara en otras celdas:


Para permitir introducir más empresas, el rango de la base de datos se ha hecho bastante amplio, desde A2 hasta A100. En el momento de acabar de introducir la función y pulsar en la tecla intro, se muestra el número de entradas no repetidas:



Si añadimos una nueva empresa en la columna A la función bdcontara lo reflejará automaticamente si es nueva la empresa, o no hará nada si es una empresa que ya ha sido introducida anteriormente.

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