El grupo al cual envías entradas es un grupo Usenet. Si envías mensajes a este grupo, cualquier usuario de Internet podrá ver tu dirección de correo electrónico
Me ha pasado una cosa muy curiosa la cual no llego a comprender, os la comento a ver si os ha pasado o tenéis alguna idea de por donde ha podido venir el problema.
Tengo una consulta "INSERT INTO" donde unos de los campos es la fecha actual (Date). Con ese código se han agregado, a lo largo de unos meses, muchos registros y se han añadido con la fecha correctamente, cuando digo correctamente me refiero al día y al mes en su sitio, pero curiosamente y sin explicación alguna, a partir de este mes, los registros que me añade les cambia el formato a la fecha y les da la vuelta al día y al mes, en vez de 04/11/09 me inserta 11/04/2009, lo que me ha obligado a cambiar el código de la sentencia INSERT INTO...
format (Date, "mm/dd/yyyy")
Sé que en este tipo de consultas "INSERT INTO" o similares, las fechas se deben mandar en formato americano, no obstante y a pesar de no haberlo tenido en cuenta en este código, hasta la fecha estaba funcionando correctamente, de ahí mi desconcierto.
Entendería que les diera la vuelta si no fuera una fecha coherente osea que coincidiera con algún mes 13 en adelante, pero no es el caso, tanto 04/11 como el 11/04 son fechas válidas, así que no entiendo que es lo que está pasando.
He de decir, ampliando la información, que la base de datos está funcionando en red en varios equipos y tanto en esos pcs como en el mío de desarrollo que no está dentro de esa red, me da el mismo problema.
He de decir, ampliando la información, que la base de datos está funcionando en red en varios equipos y tanto en esos pcs como en el mío de desarrollo que no está dentro de esa red, me da el mismo problema.
Hola Conrad Al entrar este mes me he encontrado con un problema similar al que describes, curiosamente desde el mes 1 a mes 10 no había dado el problema También es una base funcionando en red , auque no creo tenga nada que ver Access 2003 SP3
He de decir, ampliando la información, que la base de datos está funcionando en red en varios equipos y tanto en esos pcs como en el mío de desarrollo que no está dentro de esa red, me da el mismo problema.
mmm... muy interesante, porque yo no le encuentro explicación, se que lo estaba haciendo mal, pero no me he dado cuenta hasta ahora que es cuando realmente ha fallado.
Es bueno que le falle a alguien mas porque es señal de que no es mi problema sino algún bug que se le ha colado a los de microsoft. A ver si a alguien mas le ha pasado.
Lazar escribió:
> Hola Conrad > Al entrar este mes me he encontrado con un problema similar al que > describes, curiosamente desde el mes 1 a mes 10 no había dado el problema > También es una base funcionando en red , auque no creo tenga nada que ver > Access 2003 SP3
-------------------------------------------------------------------------- ¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te sirvió o no la respuesta dada. Muchas gracias -------------------------------------------------------------------------- Hola! añadir a lo que dice Patxi que
3.- Inserta el día 13 de junio INSERT INTO UnaTabla (CampoFecha) VALUES(#13/06/2009#);
Access en tonto, pero no tanto, si el mes no existe, como es el caso (13), le da la vuelta y pone lo que debiera ser mes como día y lo que debiera ser día como mes.
Hola, La sentencia que yo he estado usando es la misma que habéis puesto:
"INSERT INTO Tabla (CampoFecha) VALUES ( # " & Date & " # ) "
ahora la he cambiado por esta otra:
"INSERT INTO Tabla (CampoFecha) VALUES ( # " & Format (Date, "mm/dd/ yyyy") & " #) "
Lo curioso es que, buscando posibles soluciones le he cambiado la fecha al windows al mes de octubre y utilizando la primera sentencia para ver si me lo hacía bien y, efectivamente, ahora aun con la fecha de octubre la inserta al reves, lo que es, previsiblemente normal.
¿Porque antes insertaba bien la fecha? es un misterio.
On 6 nov, 12:07, "Emilio" <miliuco56 ALGARROBA hotmail PUNTO com> wrote:
> -------------------------------------------------------------------------- > ¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te > sirvió o no la respuesta dada. Muchas gracias > -------------------------------------------------------------------------- > Hola! > añadir a lo que dice Patxi que
> 3.- Inserta el día 13 de junio > INSERT INTO UnaTabla (CampoFecha) VALUES(#13/06/2009#);
> Access en tonto, pero no tanto, si el mes no existe, como es el caso (13), > le da la vuelta y pone lo que debiera ser mes como día y lo que debiera ser > día como mes.
Si usabas esa sentencia, es extraño que te insertara bien fechas de inicio de mes:
1/2/2009 2/3/2009 3/4/2009 ...
Porque para Access, lo que colocamos entre las almohadillas debe ser una fecha en formato americano:
#1/2/2009# -> 2 de enero #2/3/2009# -> 3 de febrero #3/4/2009# -> 4 de marzo
Y si en la configuración regional, tenemos algo como día/mes/año, al usar el Date() para recoger la fecha actual y convertirla en un texto para concatenarla con el resto de la sentencia, Access y el VBA usan la configuración regional, con lo que estábamos intentando insertar unas fechas completamente distintas:
1/2/2009 -> 1 de febrero 2/3/2009 -> 2 de marzo 3/4/2009 -> 3 de abril
Y que yo sepa, este ha sido el funcionamiento continuado de Access desde hace varios años. Lo único que se me ocurre es, como ha dicho Emilio, que insertárais fechas que no tienen posibilidad de cambio:
21/1/2009 22/2/2009 23/4/2009
Hasta ahora en noviembre. Pero también se me hace extraño :-(
A no ser otra cosa: en los dos casos (el tuyo y el de Lazar), habláis de una aplicación en red. En ese caso, puede haber otra posibilidad: que las sentencias se ejecuten en el servidor, y que haya tenido 2 configuraciones regionales. La primera, hasta noviembre, que haya usado la configuración de Estados Unidos, con lo que la fecha, al convertirla en texto, haya tomado el formato mes/día/año. Y ahora en noviembre, bien sea por una modificación en la configuración regional, o por alguna actualización, esa configuración se haya convertido en la otra: día/mes/año, con lo que ya empiezan los problemas.
Pues ahí me remito, doy fe, con datos desde antes del verano mas o menos que fue cuando escribí el código que, todos los registros que se han agregado con la sentencia mal puesta se han agregado con la fecha correctamente. Si no lo hubiera echo así me hubiera dado cuenta mucho antes de que tenía el código mal escrito.
Lo de la red lo descarto porque en mi caso, la aplicación dividida en dos ficheros, uno con los frm y el otro con las tablas si que es verdad que en la oficina donde se está usando la aplicación, los datos están en el servidor, en mi pc de desarrollo, lo tengo en casa y los dos ficheros en el mismo pc y el fichero de datos que utilizo de pruebas nada tiene que ver con el que usan en la oficina mucho mas cargado de información y en los dos casos me ha echo lo mismo, osea que no creo que sea eso.
No es la primera vez que me pasan cosas raras, extrañas, sin sentido ni explicación lógico y luego, como por arte de gracia y tras una actualización automática se corrigen, en este caso es tan peculiar que lo han echo justo al revés.
> Si usabas esa sentencia, es extraño que te insertara bien fechas de > inicio de mes:
> 1/2/2009 > 2/3/2009 > 3/4/2009 > ....
> Porque para Access, lo que colocamos entre las almohadillas debe ser > una fecha en formato americano:
> #1/2/2009# -> 2 de enero > #2/3/2009# -> 3 de febrero > #3/4/2009# -> 4 de marzo
> Y si en la configuración regional, tenemos algo como día/mes/año, al > usar el Date() para recoger la fecha actual y convertirla en un texto > para concatenarla con el resto de la sentencia, Access y el VBA usan > la configuración regional, con lo que estábamos intentando insertar > unas fechas completamente distintas:
> 1/2/2009 -> 1 de febrero > 2/3/2009 -> 2 de marzo > 3/4/2009 -> 3 de abril
> Y que yo sepa, este ha sido el funcionamiento continuado de Access > desde hace varios años. Lo único que se me ocurre es, como ha dicho > Emilio, que insertárais fechas que no tienen posibilidad de cambio:
> 21/1/2009 > 22/2/2009 > 23/4/2009
> Hasta ahora en noviembre. Pero también se me hace extraño :-(
> A no ser otra cosa: en los dos casos (el tuyo y el de Lazar), habláis > de una aplicación en red. En ese caso, puede haber otra posibilidad: > que las sentencias se ejecuten en el servidor, y que haya tenido 2 > configuraciones regionales. La primera, hasta noviembre, que haya > usado la configuración de Estados Unidos, con lo que la fecha, al > convertirla en texto, haya tomado el formato mes/día/año. Y ahora en > noviembre, bien sea por una modificación en la configuración regional, > o por alguna actualización, esa configuración se haya convertido en la > otra: día/mes/año, con lo que ya empiezan los problemas.