Problema con formulario y subformulario independiente.
Resuelto
samgione
Mensajes publicados
36
Estado
Miembro
-
castours -
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.
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
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.
¿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.
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í
@+
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í
@+
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.
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.
Buenas noches
Te adjunto la base en este enlace. Esta base no es de mi creación.
Dime qué opinas
http://cjoint.com/?DKbtXGlAtEJ
Te adjunto la base en este enlace. Esta base no es de mi creación.
Dime qué opinas
http://cjoint.com/?DKbtXGlAtEJ
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
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
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.
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.