Ver Mensaje Individual
  #1  
Antiguo 29-01-2007
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Reputación: 20
fidel Va por buen camino
Consulta con los valores de varios combos

Hola:

Base de datos .. FireBird 1.5
DM .. DataModulo
CB .. ComboBox

Tengo tres ComboBox (CBNivel, CBGrupo, CBEtapa), cada combo tiene varios items incluido siempre uno vacio, por ejemplo el combo etapa tiene 3 opciones: ‘’, ESO, Bachillerato.

Para hacer un listado el usuario puede dejar todos los combos con la opción en blanco (en cuyo caso deberían aparecer listados todos los alumnos) o escoger de alguno de ellos un item con algún valor, por ejemplo del combo nivel ‘1º’, del combo etapa ‘Bachillerato’, en cuyo caso deberían aparecer todos los alumnos de 1º de bachillerato (de cualquier nivel).

Para ello hago la consulta de abajo y me funciona cuando todos los combos tienen puesto algún valor para buscar, pero si se deja alguno con la opción en blanco que tienen no funciona.

Me funciona si escojo en los combos por ejemplo:
Nivel: 2º Grupo: A Etapa: ESO (para listar los alumnos de 2º A ESO)

NO funciona si escojo en los combos:
Nivel: Grupo: Etapa: ESO (para listar los alumnos de cualquier nivel, cualquier grupo, ESO)

Código SQL [-]
DM.IBDSAlumnos.Close;

DM.IBDSAlumnos.SelectSQL.Clear;
DM.IBDSAlumnos.SelectSQL.Add('select * from ALUMNOS');
DM.IBDSAlumnos.SelectSQL.Add(' where NIVEL=:QUENIVEL');
DM.IBDSAlumnos.SelectSQL.Add(' and GRUPO=:QUEGRUPO');
DM.IBDSAlumnos.SelectSQL.Add(' and ETAPA=:QUEETAPA');

DM.IBDSAlumnos.ParamByName('QUENIVEL').AsString := CBNivel.Text;
DM.IBDSAlumnos.ParamByName('QUEGRUPO').AsString := CBGrupo.Text;
DM.IBDSAlumnos.ParamByName('QUEETAPA').AsString := CBEtapa.Text;

DM.IBDSAlumnos.Open;

¿Alguna manera de solucionar esto?. Gracias.

Un saludo.
Responder Con Cita