Enlazar 3 combobox en vb con bd access

Estoy realizando un proyecto sobre un instituto en visual b. Con conexión access
Tengo un formulario (SSTab - 1 solo formulario con pestañas ) y mi problema es que quiero enlazar los datos de 3 combos. El 1r Combo me tendría que mostrar los alumnos del centro, el el ciclo formativo que realiza y el el crédito que esta cursando.
He conseguido que me muestre los datos del 1r y 2º combo con el GotFocus pero no se como relacionarlos para que al pulsar el 1º -alumnos- me muestre los datos del 2º-ciclo- y entonces dependiendo de lo seleccionado els los otros 2, en el 3º me muestre los créditos del alumno de ese ciclo. Una vez mostrado, dependiendo del crédito elegido, ( Ej: c4, c6, c9 ) me mostrase la nota en un textbox
Le paso el código que pongo para rellenar los dos primeros combos:
Private Sub cmbnotes_alumne_GotFocus()
notes = cmbnotes_alumne.Text
cicles = cmbnotes_cicle.Text
cmbnotes_alumne.Clear
cmbcodi_cicle.Clear
rs_a.MoveFirst
Do While Not rs_a.EOF
If notes <> rs_a!cognoms_nom Then
cmbnotes_alumne.AddItem rs_a!cognoms_nom
cmbnotes_cicle.AddItem rs_a!codi_cicle
End If
rs_a.MoveNext
Loop
cmbnotes_alumne.Text = notes
notes = cmbnotes_cicle.Text
cmbnotes_alumne.Clear
cmbnotes_cicle.Clear
rs_a.MoveFirst
Do While Not rs_a.EOF
If notes2 <> rs_a!cognoms_nom Then
cmbnotes_alumne.AddItem rs_a!cognoms_nom
cmbnotes_cicle.AddItem rs_a!codi_cicle
End If
rs_a.MoveNext
Loop
cmbnotes_alumne.Text = notes
cmbnotes_cicle.Text = cicles
End Sub
Se que debo hacer una consulta SQL pero no como ni dónde para así tener un indice del elemente seleccionado
Muchas gracias de antemano. Espero obtener respuesta suya ya que me urge porque es un proyecto final.

1 respuesta

Respuesta
1
Si vas a usar combobox sería así
Vamos primero con la lógica, tienes
3 combos A (alumnos), comboA
B (ciclo), ComboB
C(Credito), ComboC
Llenas A, hasta ahí no hay drama, seleccionas algo de A y te tiene que llenar B,
elegís algo de B y te tiene que llenar C, espero que sea así, porque así lo entendí y voy a explicar como lo haría y lo hago yo.
3 combox, primero seleccionas de comboA el Alumnos
entonces en el evento click del comboA, pones la consulta sql para que llene el comboB
algo asi, select ciclo from ciclos where alumno = comboa.list(comboa.listindex),
despues el while que llena el comboB
(Explico el list, listindex por las dudas. El combolist contiene el dato del combo y con el listindex obtenés del combo el lugar o la posición dentro del combo)
De esta manera solo vas a llenar el comboB con todos los ciclos del Alumno.
==========================================
ahora tenemos ComboA y B cargados, cargamos C, en el evento click del comboB
misma consulta sql algo asi select * from creditos where alumno = comboa.list(comboa.listindex) and ciclo = combob.list(combob.listindex)
despues el while que llena el ComboC
Y por ultimo en le evento click del ComboC elegís el crédito, y volvés a usar una consulta sql y esta vez usas los datos de los 3 combos, y haces lo mismo con list y listindex
y el resultado lo pones en el textboc.
Espero que me haya explicado bien, como consejo resolve el primer combo, los demás son lo mismo pero lo que va cambiando es los datos en el where.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas