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

  1. 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
  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
  3. castours
     
    hola
    Tengo una base sobre la gestión de un colegio.
    ¿Te puede convenir esto?
    0
  4. 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
  5. samgione Mensajes publicados 36 Estado Miembro 5
     
    Por favor, ayúdame de alguna manera, estoy realmente atascado.
    0
  6. 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
  7. 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
  8. 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
    1. 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