Hola,
Gracias por vuestra ayuda.
Al final he solucionado definitivamente (por lo menos eso espero) el problema usando en vez de fechas, números enteros.
Transformo una fecha en una diferencia entre esa fecha y el 31/12/2000 con:
Numero=DateDiff("d", "31/12/2000", Fecha)
Luego guardo ese número en la base de datos sin ninguna posibilidad de error.
Para mostrar la fecha cuando la necesito simplemente hago lo contrario:
Fecha=DateAdd("d", Numero, "31/12/2000")
La seguridad que da esto es que las funciones DateAdd y DateDiff siempre funcionarán igual mientras estén en el mismo servidor. Por otra parte, la fecha 31/12/2000 no puede ser 'transformada' inadecuadamente ya que 2000 solo puede ser el año, 31 el dia y 12 el mes.
Espero que esta explicación le venga bien a alguien.
Gracias por vuestra ayuda.