Este es el código de David
Desde = Split(TextBox1.Text, "/")
'ponemos lo guiones en barritas para que el motor sqlite3 lo reconozca
'----------------------------------------------------------
DesdeSql = "'" & Desde[2] & "-" & Desde[1] & "-" & Desde[0] & " 00:00:00'"
Hasta = Split(TextBox2.Text, "/")
HastaSql = "'" & Hasta[2] & "-" & Hasta[1] & "-" & Hasta[0] & " 00:00:00'"
'y haces la busqueda
Resultados = Conexion.Exec("select * from control where dni='" & TextBox3.Text & "' and datetime(fecha) between" & DesdeSql & " and " & HastaSql)
Y claro que funciona, pero fíjate la de operaciones que tienes que hacer para comparar fechas todo por asegurarse que se piden en el orden correcto ¿no es mas lógico que las fechas estén debidamente introducidas y que no hay que hacer todo eso para preguntar por fechas?
Cuando tu guardas una fecha haces esto
Rs!fecha=textboxfecha.text
Y te da igual en que forma las guarde. Lo que importa es que guardes bien lo que querías. Si en textbox fecha tienes '01/02/2010' quizá al meter en el campo tu estas dando por supuesto que 01 es el dia y 02 es el mes pero quizá la BD no lo interpreta igual. La BD puede interpretar que 01 es el mes y 02 es el dia. Por eso cuando luego comparas o sacas desde fecha a fecha o cosas semejantes no te hace bien. Eso puede ocurrir con cierta facilidad porque las funciones que usa
gambas relativas a fechas trabajan con el sistema anglosajón de fechas no con el español.
Yo tengo hechas mis funciones para que esas cosas no pasen y se lo explico a quien le interese, pero es lo de menos. Lo de mas es que sea cual sea el sistema que cada uno use para guardar fechas lo que tiene que hacer es probar a meter la fecha 20/01/2010 y ver si eso le da error. Si la BD está interpretando eso en formato anglosajón dará error porque no puede haber un mes 20. Sea cual sea la BD el problema es el mismo.
Una vez tengamos un sistema eficiente para guardar fechas en español ya no tendremos problema alguno para hacer operaciones con fechas sean las que sean y se podrán hacer cosas como
rs=cn.exec("select * from tabla where fecha between '" & textbox1.text & "' and ' " & textbox2.text & "'")
Es decir operaciones con fechas directamente.y el código ese que hizo David ya no lo necesitará. Si le dió tantas vueltas es porque no encontraba la manera de que le entregaran lo que guardó y eso se debe a que no guardó bien. El cree que si porque no le dió error, pero en realidad no porque el sistema interpretó la fecha de forma contraria a la deseada.
Siempre que tengas un campo de tipo fecha la primera prueba meerle un 20 de enero y ver que pasa. Cuando sepas que guardas la fecha bien te has quitado un montón de problemas de fechas posteriormente. Una vez ya tienes un método como es mi caso ya nunca tienes un problema con fechas.