Actualizar fechas en informe
Publicado por Adrián (2 intervenciones) el 18/07/2017 17:34:05
Hola, muy buenas a todos. Tengo un pequeño problema y espero que alguien pueda echarme un cable.
Tengo una base de datos en Access 2007 para gestionar unos contratos de mantenimiento. Para saber cuando vencen los contratos, tengo creado un informe que me muestra los contratos a los que les quedan 15 días o menos para vencer. Hasta aquí bien.
El problema viene cuando intento hacer que el informe me muestre los vencimientos desde fechas diferentes. Es decir, en vez desde la fecha actual hasta quince días, poner las fechas que yo quiera y que el informe me muestre los contratos que vencen entre esas dos fechas. Para ello, tengo dos etiquetas que me muestran las fechas, y a lado un botón. Al pulsar el botón, pide las dos fechas entre las cuales me debería mostrar los contratos que se acaban entre esas fechas y actualiza las fechas en las etiquetas, pero NO ACTUALIZA LOS DATOS EN EL INFORME.
No sé si hago bien usando Report.Requery o si lo estoy usando correctamente.
Aquí abajo tenéis el código asociado al botón. Si alguien me puede ayudar sería de mucho agradecer, es lo último que me queda para tener terminada la base de datos.
Saludos.
Option Compare Database
Private Sub Cmd_ActualizarFecha_Click()
'Pedimos la fecha de inicio
Dim FechaInicio As String
Dim FechaFin As String
FechaInicio = InputBox("Introduce la fecha de inicio de la consulta", "Filtro por fecha", lblFechaInicio.Caption)
FechaFin = InputBox("Introduce la fecha de finalización de la consulta", "Filtro por fecha", lblFechaInicio.Caption)
'Cargamos la consulta a ejecutar
Ejecutar_Consulta FechaInicio, FechaFin
End Sub
Private Sub Report_Open(Cancel As Integer)
'Cargamos la consulta a ejecutar
Ejecutar_Consulta
End Sub
Private Sub Ejecutar_Consulta(Optional FechaInicio As String, Optional FechaFin As String)
If FechaInicio = "" Then
lblFechaInicio.Caption = Date
FechaInicio = Format(Date, "m/d/yyyy")
Else
lblFechaInicio.Caption = FechaInicio
FechaInicio = Format(CDate(FechaInicio), "m/d/yyyy")
End If
If FechaFin = "" Then
lblFechaFin.Caption = DateAdd("d", 15, Date)
FechaFin = Format(DateAdd("d", 15, Date), "m/d/yyyy")
Else
lblFechaFin.Caption = FechaFin
FechaFin = Format(CDate(FechaFin), "m/d/yyyy")
End If
Report.RecordSource = "SELECT * " & _
"FROM CONTRATOS_MANTENIMIENTO " & _
"WHERE FECHA_FIN_CONTRATO >= #" & FechaInicio & "# And FECHA_FIN_CONTRATO <= #" & FechaFin & "# " & _
"ORDER BY NOMBRE_CLIENTE, FECHA_FIN_CONTRATO;"
Report.Requery
End Sub
Tengo una base de datos en Access 2007 para gestionar unos contratos de mantenimiento. Para saber cuando vencen los contratos, tengo creado un informe que me muestra los contratos a los que les quedan 15 días o menos para vencer. Hasta aquí bien.
El problema viene cuando intento hacer que el informe me muestre los vencimientos desde fechas diferentes. Es decir, en vez desde la fecha actual hasta quince días, poner las fechas que yo quiera y que el informe me muestre los contratos que vencen entre esas dos fechas. Para ello, tengo dos etiquetas que me muestran las fechas, y a lado un botón. Al pulsar el botón, pide las dos fechas entre las cuales me debería mostrar los contratos que se acaban entre esas fechas y actualiza las fechas en las etiquetas, pero NO ACTUALIZA LOS DATOS EN EL INFORME.
No sé si hago bien usando Report.Requery o si lo estoy usando correctamente.
Aquí abajo tenéis el código asociado al botón. Si alguien me puede ayudar sería de mucho agradecer, es lo último que me queda para tener terminada la base de datos.
Saludos.
Option Compare Database
Private Sub Cmd_ActualizarFecha_Click()
'Pedimos la fecha de inicio
Dim FechaInicio As String
Dim FechaFin As String
FechaInicio = InputBox("Introduce la fecha de inicio de la consulta", "Filtro por fecha", lblFechaInicio.Caption)
FechaFin = InputBox("Introduce la fecha de finalización de la consulta", "Filtro por fecha", lblFechaInicio.Caption)
'Cargamos la consulta a ejecutar
Ejecutar_Consulta FechaInicio, FechaFin
End Sub
Private Sub Report_Open(Cancel As Integer)
'Cargamos la consulta a ejecutar
Ejecutar_Consulta
End Sub
Private Sub Ejecutar_Consulta(Optional FechaInicio As String, Optional FechaFin As String)
If FechaInicio = "" Then
lblFechaInicio.Caption = Date
FechaInicio = Format(Date, "m/d/yyyy")
Else
lblFechaInicio.Caption = FechaInicio
FechaInicio = Format(CDate(FechaInicio), "m/d/yyyy")
End If
If FechaFin = "" Then
lblFechaFin.Caption = DateAdd("d", 15, Date)
FechaFin = Format(DateAdd("d", 15, Date), "m/d/yyyy")
Else
lblFechaFin.Caption = FechaFin
FechaFin = Format(CDate(FechaFin), "m/d/yyyy")
End If
Report.RecordSource = "SELECT * " & _
"FROM CONTRATOS_MANTENIMIENTO " & _
"WHERE FECHA_FIN_CONTRATO >= #" & FechaInicio & "# And FECHA_FIN_CONTRATO <= #" & FechaFin & "# " & _
"ORDER BY NOMBRE_CLIENTE, FECHA_FIN_CONTRATO;"
Report.Requery
End Sub
Valora esta pregunta
0