Hola:
Muchas gracias opardor.
He hecho la prueba con esto que me indicas
Código SQL
[-]
with DM.IBDSSocios do
begin
SelectSQL.Clear;
SelectSQL.Add( 'SELECT * FROM socios ' );
SelectSQL.Add( 'WHERE apellidos>=(SELECT MIN(apellidos) FROM socios WHERE apellidos LIKE :LDESDE)' );
SelectSQL.Add( 'AND apellidos<=(SELECT MAX(apellidos) FROM socios WHERE apellidos LIKE :LHASTA)' );
ParamByName('LDESDE').AsString := CBLetraDesde.Text + '%';
ParamByName('LHASTA').AsString := CBLetraHasta.Text + '%';
end;
Funciona siempre y cuando haya apellidos con todas las iniciales y la primera o la última de la serie pedida no esté acentuada.
Si por el contrario, escojo por ejemplo listar de la A a la Q y no hay apellidos que empiecen por Q no funciona, la consulta queda vacía.
Tampoco funciona si por ejemplo pido de la A a la D y el primer apellido es con A acentúada, por ejemplo Álvarez.
¿Alguna otra forma de hacerlo funcionar'. Gracias.
Un saludo.