Consultas sql con varios combobox

Hola espero puedas ayudarme
Quiero realizar varias consultas utilizando varios combobox y tengo un problema para que funcione totalmente pero ya estoy mareado de tanto prueba y error. Te explico mi caso:
desde un boton realizo l siguiente consulta
SELECT materias.codmat, materias.materia ;
FROM carrera, materias ;
WHERE carrera.codcarr = thisform.cbocodcarr.value AND materias.codcarr = carrera.codcarr AND materias.año = thisform.txtaño.Value ;
ORDER BY materias.codmat ;
INTO CURSOR xcarrera
thisform.cbocodmat1.rowsource='xcarrera' &&este es el combo1
thisform.cbocodmat1.displayvalue=codmat
y funciona. Los datos extraidos los muestro en un combo1 y con ese dato y en ese combo consulto nuavamente:
**muestra la materia asociada al cod de materia en un text1
SELECT xcarrera
thisform.txtmateria1.value = xcarrera.materia
funciona luego consulto en el click del combo1 para mostrar en el combo2
SELECT docentes.legdoc, docentes.nyadoc ;
FROM docentes ;
WHERE dicta.codmat = this.value AND dicta.legdoc = docentes.legdoc ;
ORDER BY legdoc ;
INTO CURSOR xdocentes
thisform.cbolegdoc1.rowsource='xdocentes'
thisform.cbolegdoc1.displayvalue=legdoc
thisform.cbolegdoc1.SetFocus()
Esto funciona a medias o prácticamente no funciona, ya que la materia seleccionada en combo1 tiene que yavar l dato al combo2 l que stn asociados al docente que dicta esa materia. Funciona con la materia con cod=1 de la carrera cod=1 que dicta l docente leg=1, si la 1er consulta trae 3 materias del de la carrera 1 del curso 1 no funciona la 2da. Consulta y en el combo2 no es muestra nada. ¿Cuál seria el problema? ¿Las consultas están bien realizadas?
Eso si el único dato que es correcto lo guarda sin problemas...

1 Respuesta

Respuesta
1
Los combos funcionan de una forma muy sencilla haciendo la búsqueda cargándosela en el rowsource y refrescando los cobos nada más, no tiene más complicación. Lugo al pinchar en el combo vuelves a repetir los mismos pasos cargando el siguiente combo.
Es muy sencillo no te debería de surgir problemas
Hola gracias por responder. He probado como me sugeriste pero no funciona sigue con el mismo problema la segunda consulta no funciona. Ademas al limpiar el formulario y al querer empezar con una búsqueda nueva m sale el mensaje "thisform puede usarse en un método" no entiendo a que se debe esto...
Tienes que meter el código en el método click() del combo, refresca el formulario, haz una prueba sencilla una búsqueda de prueba porque sino te funciona es que puede ser que tengas el problema en la consulta. Como te he dicho antes los combos no tienen más complicación los cargas en el rowsource, en el método click() dese comnbo haces que coja el value dese combo y vuelves a generear otra consulta la cargas en el rowsource del siguiente combo y así sucesivamente.
Nuevamente lo estoy haciendo y probando como lo sugerís y no funciona como debería. Solo con una consulta simple nada más como t mencione anteriormente. La verdad no entiendo el código es el que mande anteriormente. De todas formas muchas gracias por tu tiempo.
Si tienes alguna propiedad en el combo que te este afectando, prueba lo siguiente y si sigue sin irte pásamelo y te lo miro.
Haz una prueba coge dos combos (los creas no copies y pegues), haz dos consulta pequeñas relacionadas (vistas con nombres disttintos) y los cargas en el rowsource, en el método click() dese combo haces que coja el value dese combo y vuelves a generear otra consulta la cargas en el rowsource del siguiente combo.
Tiene que funcionarte sino pásamelo pero tiene que funcionar si o si.
No funciona. ¿pasam tu mail y t l mando y también t mando otros problemillas puede ser? Gracias
[email protected], mandame todo y comentame los problemas que tienes y que no puedo validar el programa.
Hola gracias por l ayuda solucione l problema agregue: orden by tabla.campoclave y funciono le segunda consulta de todas formas t voy a estar consultando por cualquier duda
Me alegro, finaliza la pregunta para poder seguir trabajando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas