Visual Basic - Realizar consulta con dos Combos

Life is soft - evento anual de software empresarial
 
Vista:

Realizar consulta con dos Combos

Publicado por Cristian (7 intervenciones) el 26/11/2009 15:25:56
Hola Gente:

Tengo un problemita al momento de realizar una consulta, mediante la seleccion del contenido de dos dbcombos, el tema es que me sale un error:
"Error '3061' en tiempo de ejecución. Pocos parámetros. Se esperaba 2."

Les paso el código, por si alguno me puede echar una mano con esto, desde ya muchas gracias.

Dim base As Database
Dim tabla As Recordset
Dim consulta As QueryDef

Private Sub Command1_Click()
Set base = OpenDatabase("D:\SISTEMA\CEDSA.mdb")
Set consulta = base.CreateQueryDef("", "select * from ALUMNOS where CARRERA = DBCombo1.Text and GRUPO = DBCombo2.Text;")
Set tabla = consulta.OpenRecordset()
Set Data1.Recordset = tabla
DBGrid1.Visible = True
End Sub

Cuando ejecuto el programa, selecciono los valores en los dos DBCombo, y ejecuto el codigo anterior, me salta el error, y en la depuracion me resalta la linea
Set tabla = consulta.OpenRecordset()
La idea de la busqueda es poder seleccionar todos los alumnos de la tabla ALUMNOS, que cursen la misma carrera (seleccionada en el dbcombo1) y el mismo grupo (seleccionado en el dbcombo2)

Si alguien me echa una mano, lo agradeceria
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Realizar consulta con dos Combos

Publicado por Santiago Hernández (9 intervenciones) el 26/11/2009 21:24:05
Tienes un error al realizar las consultas, bueno las condicionantes, si el parametro que le envias a buscar es texto debe de llevar una ' antes,

Tu lo tienes asi:
Set consulta = base.CreateQueryDef("", "select * from ALUMNOS where CARRERA = DBCombo1.Text and GRUPO = DBCombo2.Text;")

debe ser:
Set consulta = base.CreateQueryDef("", "select * from ALUMNOS where CARRERA = ' " & DBCombo1.Text & " ' and ' " & GRUPO = DBCombo2.Text & " ' ;")

Si quieres buscar numeros quita la comilla simple ('), y si lo que necesitas buscar es una fecha usa el simbolo de # en lugar de la comilla simpe.

Saludos espero haberte podido ayudar, quedo a tus ordenes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Realizar consulta con dos Combos

Publicado por Cristian (7 intervenciones) el 27/11/2009 00:02:04
Santiago:

Antes que nada, muchas gracias por tu respuesta! Aunque tenia un pequeño error el codigo que me pasaste, lo pude solucionar.. te comento que yo deje de programar hace 8 años, y por ahi hay cosas que no me acuerdo, aunque tengo la idea de que es lo que quiero hacer y con que... jajaja

Bueno, tengo otra situación con el sistemita que estoy haciendo, ya que si bien puedo realizar la consulta, mostrar los resultados en un Dbgrid, y de alli exportar un registro a otro formulario para poder editarlo y luego guardarlo, el tema es que si quiero hacer una nueva búsqueda mediante los dos DBCombos, solo me muestran los valores del registro seleccionado en la busqueda anterior.. en resumen..
Como puedo hacer para que los Dbcombo me vuevan a tomar todo el listado de valores del Data1 (Base de datos) para poder hacer una nueva busqueda?

Te comento que ya probé de todas las formas que se me ocurrió, y nada.. seguramente debe ser alguna estupidez, pero no hay caso... ya se me quemaron los libros..

Espero puedas darme una mano con esto..
Saludos y desde ya muchas gracias, nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Realizar consulta con dos Combos

Publicado por Santiago (9 intervenciones) el 28/11/2009 00:23:18
Bueno yo te sugeriria que programaras el evento Private Sub Combo1_Click() o Change para que cada vez que lo cambies o le hagas click lances de nuevo la consulta. Saludos espero sea eso lo que necesitas!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar