Access - Buscando fechas

 
Vista:

Buscando fechas

Publicado por Rodolfo (463 intervenciones) el 16/05/2006 20:20:20
Gente, en una busqueda de fechas tengo este codigo y no me encuentra nada. Si alguien puede decirme que es lo que estoy haciendo mal se los agradezco. Y si no, se los agradezco tambien.

Dim base As Database
Dim tabla As Recordset

Set base = CurrentDb
Set tabla = base.OpenRecordset("Fecha", dbOpenDynaset)

Dim b As Date

b = tabla.Fields("fecha").Value
tabla.FindFirst ("fecha=" & b & "")
If tabla.NoMatch Then
c = 1
End If

Gracias
Saludos

Rodolfo
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
Imágen de perfil de Alejandro

Búsqueda de registros por fecha en VBA

Publicado por Alejandro (4142 intervenciones) el 18/07/2023 20:28:48
En tu código, parece que estás tratando de buscar un registro en la tabla "Fecha" basado en el valor de una variable "b" que contiene una fecha. Sin embargo, hay un error en la línea donde intentas realizar la búsqueda.

El problema radica en la forma en que estás construyendo la cláusula de búsqueda en el método FindFirst. Cuando se trata de valores de fecha, es necesario encerrarlos entre comillas en la cláusula de búsqueda. Además, para asegurarte de que el formato de fecha sea reconocido correctamente, puedes utilizar la función Format para formatear la fecha en el formato adecuado.

Aquí tienes una versión corregida del código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim base As Database
Dim tabla As Recordset
 
Set base = CurrentDb
Set tabla = base.OpenRecordset("Fecha", dbOpenDynaset)
 
Dim b As Date
Dim c As Integer
 
b = tabla.Fields("fecha").Value
 
tabla.FindFirst "fecha = #" & Format(b, "yyyy-mm-dd") & "#"
 
If tabla.NoMatch Then
    c = 1
End If
 
tabla.Close
Set tabla = Nothing
base.Close
Set base = Nothing

En esta versión, se ha utilizado la función Format para formatear la fecha en el formato "yyyy-mm-dd" que es reconocido por Access. Además, se han agregado comillas alrededor de la fecha en la cláusula de búsqueda.

Recuerda cerrar y liberar los objetos Recordset y Database una vez que hayas terminado de utilizarlos para evitar problemas de memoria.

Espero que esta solución corrija el problema de búsqueda en tu código. ¡Buena suerte!
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