Visual Basic - FECHA vb-acces

Life is soft - evento anual de software empresarial
 
Vista:

FECHA vb-acces

Publicado por Lorien (15 intervenciones) el 05/05/2015 14:19:30
Hola, os presento un problema bastante extraño con el campo fecha; si creia que la programacion en VB no me podia sorprender mas, estaba equivocado

DESCRIPCION:

Tengo un campo fecha en una tabla:
formato: fecha corta
00/00/0000;;_

Tengo un formulario que recoge la fecha:
formato de la mascara: 00/00/0000;;_

Introduzco la fecha y le doy al boton magico; pasamos a la parte interesante de la cuestion:

CODIGO DEL BOTON:

sql = "insert into PACIENTE values ( " & [historia].Value & " , " & [fechan].Value & " , " & [sexo].Value & ");"
CurrentDb.Execute (sql)

Hasta aqui podemos ver que la cosa va bien; de hecho debugeo y el valor que me da por defecto al poner el raton en la sentencia sql aqui:

CurrentDb.Execute (sql)

es el siguiente:

sql = "insert into paciente values (2,11/11/1111,2)"

Todo va bien pero cuando se guarda en la tabla ocurren dos cosas extrañas

ERRORES:

1.- La fecha que se me guarda siempre es la misma: 30/12/1899
2.- De alguna manera se me guarda la hora, si, la hora. Selecciono la fecha y sale la hora como si hubiera dos valores en la columna. Primero esta la fecha y al ponerle el foco encima sale la hora. Para mas informacion dire que al chupar los datos de ese campio al formulario de nuevo en vez de la fecha se salta la mascara y vuelca la hora (imaginad la de problemas que me da que aparezca ahi la hora)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 147
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

FECHA vb-acces

Publicado por Juan Gilberto (323 intervenciones) el 05/05/2015 17:45:45
De donde estas sacando esa fecha 11/11/1111 ?

No me digas que con esa estas probando?
Ok... Para probar que es una fecha equivocada esta bien...
Porque nunca se te guardara una fecha erronea en un campo fecha diferente a 30/12/1899 ya que las fechas correctas inician el 01/01/1900

El que se te despliegue la hora quiere decir que el campo fecha se compone de fecha y hora y como la parte fecha esta erronea pues te despliega solamnete la parte hora
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

FECHA vb-acces

Publicado por Lorien (15 intervenciones) el 06/05/2015 08:48:39
Buenas, no tenia ni idea.

Acabo de probar con 27/01/1991 y me sigue grabando la fecha mal, de echo me sigue grabando la hora.

Es curioso porque las horas que me guarda son a partir de las 0:00 de la noche todas, ni siquiera tienen que ver con la hora de sistema...

Voy a buscar soluciones y a hacer pruebas; cuando me haya desesperado os comento que he intentado, porque y como

Vale, en la depuracion; un poco mejor planteado que ayer, puedo ver como los valores ANTES y DESPUES de la orden

CurrentDb.Execute (sql)

e incluso en esa misma orden, son los correctos (los parametros).

Por alguna razon lo que esta pasando es que al convertir los datos en el execute los esta perdiendo, o malinterpretanto, o quizas sea el formato de fecha sencilla del acces... en fin, ahora mismo estoy a punto de convertir todos los campos fecha en el formulario en 3 campos dia mes y año con desplegables

Bien, la cosa va avanzando; he probado con lo siguiente:

DoCmd.RunSQL (sql)

y resulta que lo hace mal tambien. Mi hipotesis mierdosa es que al tener el nombre sql la variables y ser el visualbasic tan antiguo, algo esta fallando, pero se que no es asi. Voy a descartarla

Bien, ha llegado el momento, voy a tener que quitar el formato fecha de la tabla y darle un formato de otro tipo; he coligado lo siguiente: si falla la introduccion pero despues las variables siguen siendo las mismas, he probado de varias maneras y sigue fallando, y se esta pasando el formato por el forro... Lo que falla es el acces2003, o una parte del mismo, o sea, el formato fecha. Voy a probar

Me esta guardando la fecha y la hora con el formato fecha mediana también; 30-dic-1899. No es el formato en si de fecha corta, deben de ser todos los formatos de fecha.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

FECHA vb-acces SOLUCIONADO

Publicado por Lorien (15 intervenciones) el 06/05/2015 09:25:22
SOLUCIONADO

HEHEHEUHEUHEUHUEHEUEHUEHUE

fecha = Format([fechan].Value, "dd/mm/yyyy")
sql = "insert into PACIENTE values ( " & [historia].Value & " , #" & fecha & "# , " & [sexo].Value & ");"

Ya lo probe en su momento pero debi de meter la conversion del formato dentro de la propia consulta sql, aparte de que no puse los #...#

Que quede claro que van dentro de la parte de la consulta entre los " ", no como las variables, que van fuera de los " " y entre & &

FECHA VISUAL BASIC ACCES 2003 CON FORMATO RESUELTO
DATE VISUAL BASIC TO ACCES 2003 SOLVED
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

FECHA vb-acces SOLUCIONADO

Publicado por Pedro Luis (56 intervenciones) el 06/05/2015 12:22:11
Quiero hacer notar que el 30/12/1899 es el dia Cero, asi como el 31/12/1899 es el dia 1, etc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar