Campos Multivalor

Qué es un campo multivalor

Habitualmente un campo de una tabla, almacena un solo valor (una cantidad, un texto..). Si queríamos almacenar varios valores de una propiedad para un registro, lo hacíamos con tablas intermedias. A partir de la versión 2007 de Access aparecen los campos multivalor. 


Como se ve en la anterior imagen, podríamos almacenar para un registro, distintos valores de una propiedad. En nuestro caso, en la tabla de productos añadimos a cada producto una propiedad "color", pero queremos que un producto pueda ser simultáneamente de  varios colores.

Como se crea un campo multivalor.

En el diseño de la tabla podemos acceder al tipo de datos y seleccionar el asistente para búsquedas:
Elegiremos "Escribiré los valores que desee"
y en el siguiente paso escribiremos los valores que deseamos ( en nuestro caso azul, verde, amarillo...)

Es en el siguiente paso, cuando elegiremos (Importante), para que sea multivalor el campo, la opción "Permitir varios valores". Si no seleccionamos esta casilla, el campo que se crea, no será multivalor.

y ya está creado el campo. podemos alimentarlo directamente en la vista hoja de datos, ó podemos crear un  formulario para alimentar esta tabla. De cualquiera de las formas, al acceder  al campo multivalor, nos aparecerá una lista con casillas de selección a su izquierda que nos permite seleccionar varios valores.

Para los más avanzados

Cuando se crea un campo, definimos el tipo de datos, y en las propiedades, tenemos también una pestaña de búsqueda:

Pues bién podríamos indicar en esta pestaña, que en vez de un cuadro de texto (ú otro tipo de control), queremos un cuadro combinado, con dichos valores, e importante, marcar la casilla permitir varios valores.

¿Por qué Office Access 2007 permite almacenar más de un valor en un campo, cuando la mayoría de los sistemas de administración de bases de datos relacionales no lo permiten?. La respuesta es que el motor de base de datos de Office Access 2007 no almacena en realidad los valores en un único campo. Aunque lo que ve y lo que utiliza parezca estar en un único campo, los valores se almacenan de forma independiente y se administran en tablas de sistema ocultas. El motor de base de datos de Access se encarga de todo, separando los datos automáticamente y reuniéndolos de nuevo en un campo.
Técnicamente hablando, un campo multivalor de Access es similar a una relación varios a varios.