El problema de las fechas y las bases de datos es sempiterno

Lo primero que tienes que hacer es tener claro en qué formato lo vas a guardar ya que la mayoria de las BDs usan el formato americano: MM - DD - AAAA. Es decir Mes-Dia-Año mientras que el europeo o continental mas bien usan el de DD-MM-AAAA.
Para evitar tantos dolores de cabeza te recomiendo que hagas lo que yo: lo convierto a un numero:
AAAAMMDD
Asi el 7 de enero de 2007 (07/01/2007 en el sistema continental, 01/07/2007 en el americano) se convierte en 20070107. Cuando hago busquedas es tan simple como
SELECT * FROM table WHERE fecha BETWEEN 20070101 AND 20070130
Me busca fechas entre el 1 de enero y el 30 de enero.
Nunca he vuelto a tener problemas con las fechas
Si no quieres usar este maravilloso método, te recomiendo que chequees en qué formato quiere tu BD que le guardes la fecha y luego te hagas una funcioncita para poner todo en su sitio:
Código:
function to_USFormatDate(fecha)
if isDate(fecha) then
USFormatDate = Month(fecha) & "-" & Day(fecha) & "-" & Year(fecha)
else
USFormatDate = ""
end if
end function
o algo parecido
Un saludo
NOTA: Llegé tarde

Me alegro que lo solucionaras