Access 2003 Problema en diseño de informes
He creado una base de datos para gestionar todos los registros de música clásica de una colección particular, de modo que se pueda dar de alta desde una ficha toda la información necesaria para su posterior localización mediante consultas e informes de sus títulos, autores, intérpretes, orquestas, solistas, instrumentos, directores, formas musicales, etc.
Para ello he diseñado un grupo de tablas que pueda contener la información y cubra las necesidades para las posteriores consultas. La tabla principal FONOTECA, que se nutre de las tablas COMPOSITOR, FORMA_MUSICAL, ORQUESTA y DIRECTOR, por otra parte están las tablas SOLISTA e INSTRUMENTO_SOLISTA, que enlazan con FONOTECA por medio de la tabla Solistas que es de enlace y tiene por objeto permitir la relación de "muchos a muchos", necesaria para asignar varios intérpretes e instrumentos a un solo registro, utilizando sólo una tabla única para todos los instrumentos y otra para todos los solistas.
Para manejar sin errores la relación "muchos a muchos", en las consultas se ha estructurado del modo siguiente:
1. Se crea la consulta FONOTECA Consulta1 que implica a todas las tablas excepto SOLISTA e INST_SOLISTA.
2. Se crea la consulta Consulta3 que contiene a la FONOTECA Consulta1 y a las tablas que faltaban SOLISTA e INST_SOLISTA. Esta consulta me sirve para relacionar todos los campos de la base de datos sin ambigüedades.
En los informes y formularios de consulta se ha utilizado la siguiente expresión con el fin de agrupar bajo el cuadro de texto independiente INTÉRPRETES la información de distintos campos, concatenada con comas, paréntesis, etc.
=SiInm(EsNulo([ORQUESTA_ORQUESTA]);[NomSolista] & " " & [ApeSolista] & (" ("+Minús([InstSolista])+")");[ORQUESTA_ORQUESTA] & ", " & [NOM_DIRECTOR] & " " & [APE_DIRECTOR] & " (director) " & [NomSolista] & " " & [ApeSolista] & (" ("+Minús([InstSolista])+")"))
Esta expresión evita que cuando no hay información aparezcan comas, paréntesis vacíos, o palabras viudas como (director) ya que no sería deseable cuando no existe orquesta.
Pero esto, que funciona muy bien, me ha creado un problema que es el motivo de mi consulta. Y es que, cuando hay más de un instrumento solista o de un intérprete solista (que corresponden a las tablas en relación "muchos a muchos") me repite el registro para cada solista. Por ejemplo el disco 14 está repetido porque los intérpretes son Chou-Liang (violín) y Sandra Rivers (piano), me devuelve dos registros con el mismo titulo de obra, uno por cada intérprete.
Poseo obras repetidas porque están ejecutadas por otros intérpretes, como por ejemplo Las Suites para chelo de Bach, interpretadas al chelo por Maurice Gendron, y también por Paul Tortelier y también por Rostyropovich. En estos casos si es necesario que aparezcan los tres registros aunque el titulo de las obras sea el mismo, pero cuando se repite un registro para el mismo titulo de la obra porque hay un pianista y un violín, además de gastar más páginas, confunde enormemente.
Mi consulta: ¿Cómo podría solucionar esto para que no ocurra?
Para ello he diseñado un grupo de tablas que pueda contener la información y cubra las necesidades para las posteriores consultas. La tabla principal FONOTECA, que se nutre de las tablas COMPOSITOR, FORMA_MUSICAL, ORQUESTA y DIRECTOR, por otra parte están las tablas SOLISTA e INSTRUMENTO_SOLISTA, que enlazan con FONOTECA por medio de la tabla Solistas que es de enlace y tiene por objeto permitir la relación de "muchos a muchos", necesaria para asignar varios intérpretes e instrumentos a un solo registro, utilizando sólo una tabla única para todos los instrumentos y otra para todos los solistas.
Para manejar sin errores la relación "muchos a muchos", en las consultas se ha estructurado del modo siguiente:
1. Se crea la consulta FONOTECA Consulta1 que implica a todas las tablas excepto SOLISTA e INST_SOLISTA.
2. Se crea la consulta Consulta3 que contiene a la FONOTECA Consulta1 y a las tablas que faltaban SOLISTA e INST_SOLISTA. Esta consulta me sirve para relacionar todos los campos de la base de datos sin ambigüedades.
En los informes y formularios de consulta se ha utilizado la siguiente expresión con el fin de agrupar bajo el cuadro de texto independiente INTÉRPRETES la información de distintos campos, concatenada con comas, paréntesis, etc.
=SiInm(EsNulo([ORQUESTA_ORQUESTA]);[NomSolista] & " " & [ApeSolista] & (" ("+Minús([InstSolista])+")");[ORQUESTA_ORQUESTA] & ", " & [NOM_DIRECTOR] & " " & [APE_DIRECTOR] & " (director) " & [NomSolista] & " " & [ApeSolista] & (" ("+Minús([InstSolista])+")"))
Esta expresión evita que cuando no hay información aparezcan comas, paréntesis vacíos, o palabras viudas como (director) ya que no sería deseable cuando no existe orquesta.
Pero esto, que funciona muy bien, me ha creado un problema que es el motivo de mi consulta. Y es que, cuando hay más de un instrumento solista o de un intérprete solista (que corresponden a las tablas en relación "muchos a muchos") me repite el registro para cada solista. Por ejemplo el disco 14 está repetido porque los intérpretes son Chou-Liang (violín) y Sandra Rivers (piano), me devuelve dos registros con el mismo titulo de obra, uno por cada intérprete.
Poseo obras repetidas porque están ejecutadas por otros intérpretes, como por ejemplo Las Suites para chelo de Bach, interpretadas al chelo por Maurice Gendron, y también por Paul Tortelier y también por Rostyropovich. En estos casos si es necesario que aparezcan los tres registros aunque el titulo de las obras sea el mismo, pero cuando se repite un registro para el mismo titulo de la obra porque hay un pianista y un violín, además de gastar más páginas, confunde enormemente.
Mi consulta: ¿Cómo podría solucionar esto para que no ocurra?
1 Respuesta
Respuesta de smanero
1