Visual Basic - Porque me graba la fecha como "1900-01-01"???

Life is soft - evento anual de software empresarial
 
Vista:

Porque me graba la fecha como "1900-01-01"???

Publicado por Hector (61 intervenciones) el 23/12/2002 21:40:42
Hola y gracias de antemano por la ayuda.
Estoy haciendo un sistemita que me permite cargar facturas y cobranzas, en una primera instancia grabo la factura con fecha NULL ó 00/00/00, porque hasta que no la cobre no le puedo grabar la verdadera fecha de cobro, entonces me encuentro con el problema que me graba "1900-01-01", cuando lo dejo en blanco,(uso el maskedit), como puedo solucionar esto????, despues cuando grabo la verdadera fecha lo hace perfecto, el problema es cuando quiero grabar blanco ó null, ó 00/00/00, el valor del campo en la tabla es de tipo datetime y le tildé la opcion de aceptar null.
Ojala me puedan ayudar
muchas gracias


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

RE:Porque me graba la fecha como

Publicado por Javier (55 intervenciones) el 24/12/2002 09:15:47
Hola Hector:

Bueno, es que 00/00/00 no es null.
Para que te grabe null en la fecha:

1) no le pongas nada, o sea, saltea la linea
rs.fields("Fecha_Factura") = txtFecha.Text ' (o línea de código equivalente)

2) colócala a null
rs.fields("Fecha_Factura") = Null

Saludos,
Javier
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

RE:Porque me graba la fecha como

Publicado por Micky (24 intervenciones) el 24/12/2002 10:21:16
Efectivamente, Javier tiene razón. El tipo de dato Datetime guarda en realidad el nº de segundos desde el 1-1-1900, por eso el valor 0 es en realidad la fecha 1-1-1900.
Y desde un cuadro de texto no hay forma de poner un nulo, solo se puede con un codigo de validación de este estilo:

If (editFecha.text = "") or (editFecha.text = "00/00/0000") then
miRecordset.fields("campo_fecha").value = null
End If

Este código lo podrías poner en el evento Validate del control.

Saludos.
Micky.
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