Access - Consultar un dato en varios campos iguales

   
Vista:

Consultar un dato en varios campos iguales

Publicado por bittte (4 intervenciones) el 19/04/2015 12:35:34
Hola,
A ver si podéis ayudarme.
Tengo una base de datos sobre alumnos, en la que tengo dos tablas, una sobre los alumnos propiamente dicho, con sus "datos personales", y otra con las clases a las que asisten.
En la primera, el nombre del alumno es la clave primaria, y en la tabla de las clases, cada campo está relacionado con la tabla de alumnos.
En esta última, tengo los datos de la clase: ID, Materia, Día, Hora, Alumno01, Alumno02, Alumno03, ..., Alumno 09, Alumno10. Es decir, cada registro podría guardar hasta 10 alumnos (máximo por clase).

El tema es que quiero hacer una consulta para saber a qué clases acude un alumno en concreto.
Y claro, se supone que la consulta debería buscar en todos y cada uno de los registros de la tabla de clases, pero también en cada uno de los campos de alumnos de cada registro.
No sé si me explico.

Vamos, que introduciendo, por ejemplo "Juan Rodríguez", mostrara todas las clases (materia, día y hora) a las que acude. El problema está en que "Juan Rodríguez" igual está en Mates en el campo 'Alumno03', y en Ciencias en el campo 'Alumno08'.

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Neckkito

Consultar un dato en varios campos iguales

Publicado por Neckkito (1104 intervenciones) el 30/04/2015 12:19:54
Hola:

Lamento comentarte que la estructura de tu tabla no es la más idónea. Para hacerlo bien se debería estructurar de otra manera.

Si quieres te explico cómo mejorar esa estructura, y si no te explico cómo hacer lo que pides con tu estructura, pero es un poco trabajoso.

Ya me dirás.

Saludos,
firmaMail
http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consultar un dato en varios campos iguales

Publicado por bittte (4 intervenciones) el 30/04/2015 12:50:10
Lo primero, gracias por tu respuesta.

Lo he estado mirando desde entonces, y creo que tienes razón.
A ver si podría ser algo así:
Sería quitar los alumnos de la tabla de clases, y crear una tercera tabla (que podría llamarse algo así como "asistencia") en la que incluir únicamente una clave primaria de dos campos, uno que apunte al campo clave de los alumnos, y el otro al campo clave de las clases.
Algo así, ¿no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito

Consultar un dato en varios campos iguales

Publicado por Neckkito (1104 intervenciones) el 30/04/2015 14:54:34
Hola!

Ahí tienes un ejemplo rápido de cómo podría hacerse: http://www.mediafire.com/download/7vp7y6odq63ckaj/bittte.Alumnos.zip

Echa un vistazo a las tablas en vista diseño, pues tienen comentarios.

De igual manera, si sitúas la consulta que hay en vista diseño, podrás ver claramente las relaciones.

A ver si te "inspira"

Saludos,

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consultar un dato en varios campos iguales

Publicado por bittte (4 intervenciones) el 30/04/2015 20:51:39
Lo primero, muchas gracias.

Hay una cosa que no entiendo, y es por qué en las Relaciones, no has relacionado el campo IdMateria de la tabla de "asistencia" (la que has llamado TMateriasAlumnos) con el mismo campo de la tabla de "materias" (la que llamas TMaterias).

Un saludo,

bittte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito

Consultar un dato en varios campos iguales

Publicado por Neckkito (1104 intervenciones) el 30/04/2015 23:04:59
Hola!

Entramos ahí en un terreno delicado. Hay programadores que son partidarios de marcar todas las relaciones posibles; hay otros que son partidarios de no marcar ninguna relación.

En mi caso, y es una opinión particular, yo soy partidario de establecer relaciones siempre y cuando sea estrictamente necesario.

Por ejemplo, y utilizando la base de datos de ejemplo que te he preparado, si yo preveyera que para la operativa de la base de datos voy a necesitar actualizar los campos en cascada, o eliminarlos en cascada, hubiera marcado la relación (es decir, la podrías ver en la ventana de relaciones). O, por poner otro ejemplo, si estuviera muy interesado en que el propio Access me controlara la eliminación de registros (es decir, que me saliera el mensajito de "No se puede eliminar el registro porque tiene registros relacionados") también hubiera establecido la relación.

En el caso del ejemplo, en primer lugar, lo he hecho a lo rápido, por lo que no me he parado a analizar la necesidad de establecer relaciones o no.

En segundo lugar, en realidad sí que he marcado una relación. Hay relaciones explícitas, como cuando tú, en la ventana de relaciones, te dedicas a establecerlas y configurarlas, pero también hay relaciones implícitas, que no aparecen en la ventana de relaciones pero Access sabe que están (porque se lo has dicho indirectamente).

En el caso del ejemplo yo he establecido una relación implícita entre los dos campos que mencionas. ¿Cómo? Pues he aprovechado la relación que se establece entre formulario y subformulario, y he indicado que los campos de enlace entre el form padre y el form hijo son, precisamente, los campos identificadores de la materia. En otras palabras, gracias a esa relación implícita el subform "sabe" que tiene que escribir el id de la materia que hay en el form principal para poder relacionar el registro del form con los registros del subform.

Hay para escribir un libro, y en mi web tienes algunos artículos que hablan de ello (a nivel teórico el artículo que habla del modelo E-R es muy interesante... aunque no está bien que lo diga yo). Pero, insisto, la contrapartida es encontrarte con bases de datos complicadísimas que no tienen establecida ni una relación. Cuestión de gustos, vamos.

En fin... un mundillo interesante esto de Access... je, je...

Espero haber podido clarificar tus dudas.

Un saludo,

Neckkito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Consultar un dato en varios campos iguales

Publicado por bittte (4 intervenciones) el 01/05/2015 09:50:35
Muchas gracias por la explicación.

Me ha quedado clarísimo.

Un saludo,

bittte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar