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.