Access - Formatear fecha larga como corta para búsqueda

   
Vista:

Formatear fecha larga como corta para búsqueda

Publicado por Ana (80 intervenciones) el 29/05/2011 18:56:55
Hola a todos,
Llevo atascada un buen rato en algo que debe ser una tontería, y seguro que hay alguien que tiene una respuesta rápida para ello.

Tengo un cuadro de texto "MiFecha" independiente formateado como Fecha Larga que el usuario rellena utilizando el selector que proporciona Access para estos campos.
Posteriormente yo utilizo esa fecha para una búsqueda en una tabla. Me he dado cuenta de que si el cuadro de texto se formatea como fecha corta no hay nigún problema, pero como fecha larga la búsqueda da error.
Bien, pues me he dicho, formateemos como fecha corta, es decir:
FechaBusq = Format(Me.MiFecha,"dd/mm/yyyy")
Bueno, pues FechaBusq (declarada como Variant o Date, en ningún caso funciona) sigue teniendo exactamente la misma fecha larga de MiFecha (o sea "domingo 29 de mayo...").

He probado también:
FechaBusq =Fix(Me.MiFecha) donde FechaBusq es Double
FechaBusq = DateSerial(Year(Me.MiFecha),Month(Me.MiFecha),Day(Me.MiFecha))

ninguna de las dos funciona.
Seguro que es algo muy fácil, pero no doy con ello. ¿Alguien puede ayudarme?

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

Formatear fecha larga como corta para búsqueda

Publicado por Jefferson jefferson-jimenez@hotmail.com (381 intervenciones) el 29/05/2011 23:46:28
Prueba colocando la fecha en ingles

FechaBusq = Format(Me.MiFecha,"mm/dd/yyyy")

Desde Venezuela
Jefferson
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

Formatear fecha larga como corta para búsqueda

Publicado por Ana (80 intervenciones) el 29/05/2011 23:54:40
Muchas gracias, Jefferson, pero el efecto es el mismo cuando pongo formato "dd/mm/yyyyy" que "mm/dd/yyyyy". La fecha sigue conteniendo el texto "lunes, 30 de mayo..."
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

Formatear fecha larga como corta para búsqueda

Publicado por Jefferson jefferson-jimenez@hotmail.com (381 intervenciones) el 30/05/2011 00:24:54
Hola Ana

Desconozco como sera tu codigo de busqueda, pero aplicando este codigo "suponiendo" que la tabla se llame pedidos

Private Sub JJJTDlookupFecha()
'Abrir un Formulario o Reporte con condicion de filtrado
Dim BJJJT As String
If IsNull(CampoFecha) Then
MsgBox "Aun no ha ingresado nada"
Exit Sub
End If
BJJJT = Nz(Dlookup("[FechaPedido]", "Pedidos","[FechaPedido] = #" & Format(CampoFecha,"mm/dd/yy") & "#"),0)
If CampoFecha <> BJJJT Then
MsgBox "No Existen Campos Coincidentes"
Else
DoCmd.OpenForm "Pedidos" ,,," FechaPedido = #" & Format(BJJJT, "mm/dd/yy") & "#"
'Recuerda cambiar estas lineas si lo que deseas es abrir un Informe
'DoCmd.OpenReport "Pedidos" ,acPreview,," FechaPedido = #" & Format(BJJJT, "mm/dd/yy") & "#"
End If
End Sub

en este enlace puedes familiarizarte con las funciones de dominio de Access http://sites.google.com/site/jjjt1973/Home/asistente-para-funciones-de-dominio

Desde Venezuela
Jefferson
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

Formatear fecha larga como corta para búsqueda

Publicado por Ana (80 intervenciones) el 30/05/2011 00:33:57
Gracias de nuevo por tu rápida respuesta, Jefferson.
Estoy usando con éxito en mi aplicación búsquedas que contienen campos fecha, y, efectivamente, el formateo en inglés es la solución que uso. La única diferencia en este caso es que el campo que tú llamas CampoFecha está configurado como "Fecha Larga" (en Propiedades del cuadro de texto). Es en este caso, y sólo en este caso, cuando no me sirve el código. No sé si será necesario hacer algo más que no estoy haciendo. Como te digo, en otros formularios me funciona perfectamente la búsqueda por fechas.
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

Formatear fecha larga como corta para búsqueda

Publicado por Jefferson jefferson-jimenez@hotmail.com (381 intervenciones) el 30/05/2011 01:44:22
Bien

Si al momento de introducir la fecha al campo se escribe "Jueves, 26 de Febrero de 1998" habria que crear un código que transforme este dato string a date y luego averiguar como esta creada la propiedad configuración regional y de idioma de la PC.

Ahora, si utilizas el selector Calendario de Access o un control Calendar de VB debería de pasar la fecha tal cual lo usa la configuración regional y de idioma, o bien introduciendo el dato de forma manual "26/02/1998" el dato que mostraría seria "Jueves, 26 de Febrero de 1998" puesto que el código nativo en Access VBA lo llevaría a Date usando la función FormatDateTime(CampoFecha,vbLongTime)

Descarga este ejemplo https://sites.google.com/site/jjjt1973/Home/agenda-de-cumpleanos/BD_Busca_Fecha.rar?attredirects=0&d=1

Desde Venezuela
Jefferson
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

Formatear fecha larga como corta para búsqueda

Publicado por Ana (80 intervenciones) el 30/05/2011 09:16:03
Hola Jefferson,
Muchas gracias por tu ejemplo.
Efectivamente el usuario selecciona una fecha con el control calendar de VB, obteniendo un valor en CampoFecha del estilo "jueves, 26 de Febrero de 1998".
En tu ejemplo utilizas:
FormatDateTime(#2/26/1998#, vbShortDate) para convertir la fecha, pero tengo una pregunta:

¿Cómo obtengo el valor #2/26/1998# a partir del contenido de CampoFecha, que desconozco porque es el valor que ha seleccionado el usuario?

1) FormatDateTime(CampoFecha,vbShortDate) no funciona.

1) Format(CampoFecha,"mm/dd/yyyyy") tampoco funciona

Estoy empezando a pensar que debo rediseñar el formulario porque me da que esto de las fechas largas está pensado como presentación de información de BD, pero no puede utilizarse para introducir información.

Muchas gracias por tu ayuda. He conocido la función FormatDateTime que no había utilizado hasta ahora.
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