Problema con formulario y subformulario independiente.

Resuelto
samgione Mensajes publicados 36 Estado Miembro -  
 castours -
Hola,
Les saludo a todos, tengo un gran problema con Access.
He creado una base de datos para gestionar una escuela profesional. El problema es que tengo un subformulario de cursos que es totalmente independiente y debe mostrar la información de la tabla de cursos según el número de estudiante que se visualiza en el formulario principal (formulario de estudiante), que también es independiente.

He intentado hacerlo de diversas maneras, pero nada funciona; la última forma que funcionó muestra un solo curso para el estudiante actual, mientras que existen varios cursos para este estudiante.
Ayúdenme a resolver el problema, por favor.

Para este estudiante existen dos cursos, 1 y 2; solo se muestra un curso.

Los códigos VBA utilizados son los siguientes:

Option Compare Database
Option Explicit
Dim s As String ' variable declarada para recibir el valor de la consulta del subformulario
Dim rsEtud As DAO.Recordset ' para el formulario principal
Dim rs As DAO.Recordset ' subformulario
Dim rsDb As DAO.Database

Sub AfficherDonnees()
' llenado de los campos del formulario principal
Me.NoEtu = rsEtud("NoEtu")
Me.Nom = rsEtud("Nom")
Me.Prenom = rsEtud("Prenom")
Me.Sexe = rsEtud("Sexe")
Me.Option = rsEtud("Option")
Me.NoGrp = rsEtud("NoGrp")

s = "SELECT * FROM Cours WHERE NoEtud=" & Me.NoEtu & ";"
Set rs = rsDb.OpenRecordset(s, dbOpenDynaset, dbSeeChanges)

If rs.EOF = False Then
' llenado de los campos del subformulario

[sfCours].Form!NoCours = rs("NoCours")
[sfCours].Form!NomC = rs("NomC")
[sfCours].Form!DateC = rs("DateC")
[sfCours].Form!NoEtud = rs("NoEtud")
Else
[sfCours].Form!NoCours = ""
[sfCours].Form!NomC = ""
[sfCours].Form!DateC = ""
[sfCours].Form!NoEtud = ""
End If
End Sub

Private Sub Form_Load()
Set rsDb = CurrentDb

Set rsEtud = rsDb.OpenRecordset("ReqEtudiants", dbOpenDynaset)

AfficherDonnees
End Sub

Private Sub Form_Close()
rs.Close
rsEtud.Close
rsDb.Close
Set rs = Nothing
Set rsEtud = Nothing
Set rsDb = Nothing
End Sub

Quiero que todos los cursos (NoEtud) que tienen el mismo número que el estudiante actual (Me.NoEtu) aparezcan en el subformulario.

8 respuestas

Delphine
 
Hola samgione

¿Ya tiene una base de datos?
Si, ¿puede darme la composición de las tablas?

Si no, puedo ayudarle a diseñarla y a realizar las consultas SQL.
2
DelNC Mensajes publicados 2360 Estado Miembro 2 010
 
Hola samgione

no puedo acceder a su base de datos.

De lo contrario, le indico cómo haré la base de datos

estudiantes
id_estudiante
nombre
apellido
fecha_nacimiento
dirección
...

materias
id_curso
nombre

profesores
id_profesor
nombre
teléfono

aulas
id_aula
nombre

clases
id_clase
nombre (ej. segundo_1)
id_prof_principal

cursos
id_curso
id_materia
id_profesor
id_clase
fecha
hora

En cuanto al formulario, si desea tener la lista de los cursos que sigue un estudiante (o alumno, como prefiera), haré un formulario en AJAX.

Al inicio de la página, la lista de estudiantes se cargará, solo tendrá que seleccionar al estudiante que desee.
Según su elección, tendrá la lista de cursos que le corresponden

Inténtelo así
@+
2
castours
 
hola
Tengo una base sobre la gestión de un colegio.
¿Te puede convenir esto?
0
samgione Mensajes publicados 36 Estado Miembro 5
 
Hola a todos, especialmente a Delphine y Castours.
Sí, Castours, me gustaría echar un vistazo a su base, eso me podría ayudar.

Y sí, Delphine, ya tengo una base de datos sobre la cual está construido el formulario de arriba, aquí está el enlace donde pueden descargar la base: https://www.developpez.net/forums/d1478692/logiciels/microsoft-office/access/probleme-d-affichage-donnees-sous-formulaire-access-access-unbound-sub-form/

Y si pueden ayudarme a diseñar la base y a realizar las consultas SQL, sería muy amable.

Gracias de antemano a todos.
0
samgione Mensajes publicados 36 Estado Miembro 5
 
Por favor, ayúdame de alguna manera, estoy realmente atascado.
0
castours
 
Buenas noches
Te adjunto la base en este enlace. Esta base no es de mi creación.
Dime qué opinas

http://cjoint.com/?DKbtXGlAtEJ
0
castours
 
Hola
He modificado tu base creando un nuevo formulario y un subformulario, así como también nuevas tablas en este enlace.
Responde a los 2 mensajes que te envié

http://cjoint.com/?DKdjTdtuBGZ
0
samgione
 
Hola, hermanos, hola castores,
estoy casi satisfecho con las ayudas que me han brindado, castores, realmente estoy inspirado por los dos ejemplos que me propusieron y entiendo bien la lógica del formulario F_Cursos y del subformulario S/F_Estudiantes "un curso puede tener varios estudiantes". Gracias por esta idea genial.

Pero, ¿no podrían el S/F_Estudiantes y el F_Cursos ser formularios independientes (formulario no vinculado)? Es decir, ¿no podemos hacer lo mismo en formularios no relacionados o independientes a través del DAO?

Muchas gracias por las ayudas que me han proporcionado todos.
0
castours
 
Hola
¿Por qué quieres formularios independientes?
¿Con qué propósito?
Ahora hay que gestionar las horas y fechas de clases con los profesores así como el nivel de las clases.
0