Hacer una consulta en formulario access

En un formulario access

Tengo esta tabla

ALUMNOS con los campos ID_ALUMNO, NOMBRE_A, MAESTRO_NOMBRE

Lo que quiero es que en un formulario con 10 cuadros de texto me arroje los nombres de los alumnos a los que le de clases determinado maestro en esos cuadros de texto

1 Respuesta

Respuesta

Voy a tratar de ser lo más didáctico posible, sin meterte en honduras de código. Vamos a suponer que tengo la tabla Alumnos y un formulario Formulario3 donde tengo un cuadro combinado llamado Elegir donde elegiré a los profesores.

Con esta tabla creo una consulta para "limitar" los alumnos de cada maestro que elija en el combinado Elegir

A su vez con ésta consulta hago otra como en la imagen. Lo que hace es asignarle a cada alumno de ese maestro un orden correlativo.

Vamos ahora al formulario, donde por comodidad mía sólo he puesto 5 cuadros de texto llamados A1, A2,...

Si elijo a uno de ellos, en este caso a Don Miguel

Me deja el formulario como

Si ahora elijo a otro

En este caso en particular, en el evento Después de actualizar del combinado Elegir le he puesto

Private Sub Elegir_AfterUpdate()
Dim i As Byte
Dim lbl As Control
For i = 1 To DCount("*", "consulta2")
Set lbl = Controls("A" & i)
lbl = ""
lbl = DLookup("nombre", "consulta2", "orden=" & i & "")
Next i
A1.SetFocus
End Sub

Es decir, que le asigne a cada control que tenga por nombre A1,A2,....tantos como alumnos haya en la consulta2 el valor que figura en el campo nombre de aquellos registros en que su orden sea igual a i(o sea, 1, 2,...)

También le he puesto en el evento Al recibir el enfoque del combinado

Private Sub Elegir_GotFocus()
For Each Control In Form.Controls
If Control.ControlType = acTextBox Then
Me.Controls(Control.Name) = Null
End If
Next
End Sub

Para que si cambiara de maestro me deje primero los controles en blanco.

De todas formas, si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando el ejemplo, que es como se ve mejor.

Si lo haces, en el asunto del mensaje pon tu alias Jes Eo, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas