Que tal Jesús.
La parte que esta mal, es que estas tratando las fechas como cadenas, entonces si tenemos las siguientes fechas:
'01/02/2007' , '16/03/2007', y '06/04/2007'
y las ordenamos , tendríamos lo siguiente:
'01/02/2007' , '06/04/2007' y '16/03/2007'.
Y es por eso que la tercera "fecha" no entra en el rango.
Lo que yo aconsejo, en estos casos de manejar la fecha, como cadena o como entero es manejarlas en el formato
AAAAMMDD. Y esto funciona para cualquier lenguaje(vb, c#, asp, java, vbscript, jscript, etc.) y para cualquier base de datos. De esta manera se esta tomando en cuenta el año, mes y día.
Para tu caso en especifíco lo siguiente funciona perfectamente.
Código:
"select * from pr a, preguntas b where CONVERT(VARCHAR(12),Fecha_Resp,112)>='20070201' and CONVERT(VARCHAR(12),Fecha_Resp,112)<='20070406' "
Saludos y suerte!!