Access - Operar con fechas-Recuperar registro

 
Vista:

Operar con fechas-Recuperar registro

Publicado por Patricio (7 intervenciones) el 22/06/2004 21:04:42
Antes que nada quiero agradecer a Victoria dado que su información me ha sido de mucha utilidad. Aparte de operar con las fechas, yo necesito que además de ese dato, recuperar el registro del estado del medidor, sin necesidad de volver a escribirlo. Como ejemplo:
Fecha actual: Junio-2004 - Estado del medidor: 1000(*)
Fecha anterior: Mayo-2004 - Estado del medidor: 900
Consumo: 1000-900=100
Al mes siguiente:
Fecha actual: Julio-2004 - Estado del medidor: 1200
Fecha anterior: Junio-2004 - Estado del medidor: 1000(*)
Consumo: 1200-1000=200
(*) Este es el dato que se repite y el cliente me pide que no tenga necesidad de volver a ingresarlo.
Cómo hago?
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

Operar con fechas-Recuperar registro

Publicado por Alejandro (4142 intervenciones) el 08/05/2023 19:50:23
Para lograr lo que deseas en Access, puedes utilizar una combinación de consultas y formularios. A continuación, te describo los pasos a seguir:

1. Crea una tabla en Access para almacenar los datos de los medidores. Esta tabla debe tener al menos los siguientes campos: "Fecha", "Estado del medidor" y "Consumo". Puedes agregar otros campos necesarios según tus requerimientos.

2. En el formulario donde deseas ingresar los datos, agrega un subformulario basado en la tabla de medidores. Asegúrate de establecer la relación adecuada entre el formulario principal y el subformulario. Esto permitirá que los datos ingresados en el subformulario estén vinculados al registro principal.

3. En el evento "AfterUpdate" del campo "Estado del medidor" en el subformulario, puedes utilizar código VBA para calcular automáticamente el consumo y actualizar el campo "Consumo" en la tabla de medidores. Aquí tienes un ejemplo de código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub txtEstadoMedidor_AfterUpdate()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim consumo As Long
 
    Set db = CurrentDb
    Set rs = db.OpenRecordset("NombreDeTuTablaMedidores", dbOpenDynaset)
 
    rs.MoveLast
    rs.MoveFirst
 
    ' Verificar si hay registros anteriores
    If Not rs.EOF Then
        rs.MoveLast
        consumo = Me.txtEstadoMedidor.Value - rs!EstadoMedidor.Value
        rs.AddNew
        rs!Fecha = Date
        rs!EstadoMedidor = Me.txtEstadoMedidor.Value
        rs!Consumo = consumo
        rs.Update
    End If
 
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

Asegúrate de reemplazar "NombreDeTuTablaMedidores" con el nombre real de tu tabla de medidores.

Este código realiza lo siguiente:
- Abre un recordset para la tabla de medidores.
- Verifica si hay registros anteriores en la tabla. Si los hay, calcula el consumo restando el estado del medidor actual del estado del medidor anterior.
- Agrega un nuevo registro en la tabla de medidores con la fecha actual, el estado del medidor actual y el consumo calculado.
- Cierra el recordset y libera los objetos.

De esta manera, cada vez que se actualice el campo "Estado del medidor" en el subformulario, se calculará automáticamente el consumo y se agregará un nuevo registro en la tabla de medidores con la fecha actual, el estado del medidor actual y el consumo correspondiente.

Espero que esta solución te sea útil.
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