Duda sobre como grabar fecha
Hola, gracias por leer el mensaje. Mi pregunta es
acerca de cómo se guarda y lee posteriormente las fechas en ACCESS 2000. Yo pretendo leer siempre
de la misma forma ("YYYY/MM/DD") , por ejemplo:
En SQL debe ser "Select * from nacimientos where fecha = #" & Format(dfecha, "yyyy/mm/dd") & "#"
... pero a veces me dice que no hay datos, cuando realmente yo se que los hay.
Cuando hago la pregunta de esta forma:
"Select * from nacimientos where fecha = #" & dfecha & "#"...., si me lee los datos que quiero.
Mi pregunta es: ¿puede ser que los datos se hayan grabado de alguna otra forma y por eso no me lo encuentre con el formato que quiero?.
Gracias de nuevo y espero alguna respuesta.
acerca de cómo se guarda y lee posteriormente las fechas en ACCESS 2000. Yo pretendo leer siempre
de la misma forma ("YYYY/MM/DD") , por ejemplo:
En SQL debe ser "Select * from nacimientos where fecha = #" & Format(dfecha, "yyyy/mm/dd") & "#"
... pero a veces me dice que no hay datos, cuando realmente yo se que los hay.
Cuando hago la pregunta de esta forma:
"Select * from nacimientos where fecha = #" & dfecha & "#"...., si me lee los datos que quiero.
Mi pregunta es: ¿puede ser que los datos se hayan grabado de alguna otra forma y por eso no me lo encuentre con el formato que quiero?.
Gracias de nuevo y espero alguna respuesta.
Para cambiar las fechas al formato sql debes utilizar una funcion como esta a la que le pasas la fecha de dd/mm/aaaa y devuelve #mm/dd/aa#:
Public Function Cambiar_Fecha(fecha As String) As String
'Esta funcion recoge una fecha y la devuelve en modo sql
'#mm/dd/aa#
Dim varano As Integer
Dim vardia As Integer
Dim varmes As Integer
varano = Mid(fecha, 9, 2)
vardia = Mid(fecha, 1, 2)
varmes = Mid(fecha, 4, 2)
nueva = "#" & varmes & "/" & vardia & "/" & varano & "#"
Cambiar_Fecha = nueva
End Function
Public Function Cambiar_Fecha(fecha As String) As String
'Esta funcion recoge una fecha y la devuelve en modo sql
'#mm/dd/aa#
Dim varano As Integer
Dim vardia As Integer
Dim varmes As Integer
varano = Mid(fecha, 9, 2)
vardia = Mid(fecha, 1, 2)
varmes = Mid(fecha, 4, 2)
nueva = "#" & varmes & "/" & vardia & "/" & varano & "#"
Cambiar_Fecha = nueva
End Function
Por que no checas el formato de fecha de tu sistema en panel de control configuración regional, debe ser igual a la forma en que desear escribir.
hola, yo tenia el mismo problema que tu y lo solucione de la siguiente manera
en la base de datos en lugar de meter un campo fecha
utilizo un campo de texto con longitud 10
01/02/2004, por ejemplo y en mi programa declaro una variable de tipo string de longitud 10
a la cual depende de como quira el formato le asigno yo la fecha asi
variable=year(format(date,"0000")) & "/" & month(format(date,"00")) & "/" & day(format(date,"00"))
no recuerdo bien si el format va dentro o fuera de toda la exprecion, pero de esta manera no tengo problemas al buscar una fecha independientemente del formato que tenga el sistema...
en la base de datos en lugar de meter un campo fecha
utilizo un campo de texto con longitud 10
01/02/2004, por ejemplo y en mi programa declaro una variable de tipo string de longitud 10
a la cual depende de como quira el formato le asigno yo la fecha asi
variable=year(format(date,"0000")) & "/" & month(format(date,"00")) & "/" & day(format(date,"00"))
no recuerdo bien si el format va dentro o fuera de toda la exprecion, pero de esta manera no tengo problemas al buscar una fecha independientemente del formato que tenga el sistema...