Access - busqueda por fechas

 
Vista:

busqueda por fechas

Publicado por fabian (22 intervenciones) el 20/07/2007 16:28:11
tengo el siguiente codigo para buscar registros entre dos fechas pero me da error, me dice
error de compilacion "no se puede encontrar el proyecto o la biblioteca"
y me marca en negrita la palabra format
si alguien puede ayudarme a solucionar este problema se lo agradeceria.

Private Sub Comando10_Click()
Dim stDocName As String
stDocName = "informe"
If Me!fecha1 <> "" Then ' comprueba fecha de inicio contiene algo
txtFiltro = "[Tabla1]![Fecha] >= #" & format(Me.fecha1, "mm/dd/yy") & "#"
End If
If Me!fecha2 <> "" Then ' comprueba fecha de fin contiene algo
If txtFiltro = "" Then ' comprueba si ya hay algo en txtfiltro
txtFiltro = "[Tabla1]![Fecha] <= #" & Format(Me.fecha2, "mm/dd/yy") & "#"
Else
txtFiltro = txtFiltro & " and [Tabla1]![Fecha] <= #" & Format(Me.fecha2, "mm/dd/yy") & "#"
End If
End If

DoCmd.OpenReport stDocName, acPreview
Set inf = Reports("informe")
inf.FilterOn = True ' activa el filtro en el informe
inf.Filter = txtFiltro ' pasa los datos por los que filtrar

End Sub
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 entre dos fechas

Publicado por Alejandro (4142 intervenciones) el 16/08/2023 16:38:36
El error que estás experimentando está relacionado con el uso incorrecto de la función `Format` en el código VBA. Parece que estás intentando utilizar la función `Format` sin una referencia correcta. Aquí tienes el código corregido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Comando10_Click()
    Dim stDocName As String
    Dim txtFiltro As String
    Dim inf As Report
 
    stDocName = "informe"
 
    If Me!fecha1 <> "" Then ' comprueba si la fecha de inicio contiene algo
        txtFiltro = "[Tabla1]![Fecha] >= #" & Format(Me.fecha1, "mm/dd/yy") & "#"
    End If
 
    If Me!fecha2 <> "" Then ' comprueba si la fecha de fin contiene algo
        If txtFiltro = "" Then ' comprueba si ya hay algo en txtfiltro
            txtFiltro = "[Tabla1]![Fecha] <= #" & Format(Me.fecha2, "mm/dd/yy") & "#"
        Else
            txtFiltro = txtFiltro & " AND [Tabla1]![Fecha] <= #" & Format(Me.fecha2, "mm/dd/yy") & "#"
        End If
    End If
 
    DoCmd.OpenReport stDocName, acPreview
    Set inf = Reports(stDocName)
    inf.FilterOn = True ' activa el filtro en el informe
    inf.Filter = txtFiltro ' pasa los datos por los que filtrar
End Sub

Recuerda que en este código:

1. Se ha corregido la declaración de la variable `txtFiltro`.
2. Se ha agregado la declaración de la variable `inf` para representar el informe.
3. Se ha corregido el uso de la función `Format` para formatear las fechas correctamente.

Si continúas experimentando problemas, asegúrate de que la referencia a Microsoft Access Object Library esté habilitada en tu proyecto VBA. Puedes hacer esto yendo a "Herramientas" > "Referencias" en el editor de Visual Basic.
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