Access - formulario modificando 1registro desde otro

 
Vista:

formulario modificando 1registro desde otro

Publicado por alejandro (49 intervenciones) el 20/10/2005 11:58:20
no he conseguido ayuda en ningun foro. no se si se pude hacer
la idea es mediante cajas de texto de 1registro obtener un valor final para ese registros.
posteriormente para el siguiente registro se utiliza el valor final del registro anterior y se le suma una caja de texto y se le resta otra del que es ahora segundo registro, obteniendo asi el valor final del segundo registro y asi sucesivamente

las cajas de texto se llaman a compensar,compensadas y sobrante (valor final)

por ejemplo:

a compensar=5 compensadas=0 sobrante=5

luego en el segundo registro
a compensar=4 compensadas=0 sobrante=5+4-0 y en el sobrante del registro anterior deberia poner 0

1 saludo y espero me podais ayudar

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

Cálculo de valores finales en registros sucesivos mediante cajas de texto

Publicado por Alejandro (4142 intervenciones) el 12/06/2023 23:11:46
1. Abre el formulario en modo de diseño.
2. Asegúrate de que cada caja de texto correspondiente a "a compensar", "compensadas" y "sobrante" tenga un nombre único asignado en la propiedad "Nombre" de cada control. Por ejemplo, "txtACompensar", "txtCompensadas" y "txtSobrante".
3. Selecciona la caja de texto "txtSobrante" y ve a la propiedad "Evento Después de Actualizar" en la pestaña "Evento".
4. Haz clic en el botón de los tres puntos (...) junto a la propiedad "Evento Después de Actualizar" para abrir el Editor de VBA.
5. En el Editor de VBA, escribe el siguiente 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
Private Sub txtSobrante_AfterUpdate()
    Dim aCompensar As Double
    Dim compensadas As Double
    Dim sobranteAnterior As Double
    Dim sobrante As Double
 
    ' Obtener los valores de las cajas de texto
    aCompensar = CDbl(Nz(Me.txtACompensar.Value, 0))
    compensadas = CDbl(Nz(Me.txtCompensadas.Value, 0))
    sobranteAnterior = CDbl(Nz(Me.txtSobrante.Value, 0))
 
    ' Calcular el valor de "sobrante" para el registro actual
    sobrante = sobranteAnterior + aCompensar - compensadas
 
    ' Establecer el valor de "sobrante" para el registro actual
    Me.txtSobrante.Value = sobrante
 
    ' Establecer el valor de "sobrante" del registro anterior a cero
    If Me.CurrentRecord > 1 Then
        Me.Recordset.MovePrevious
        Me.txtSobrante.Value = 0
        Me.Recordset.MoveNext
    End If
End Sub

6. Guarda y cierra el Editor de VBA.
7. Guarda el formulario y ciérralo.
8. Abre el formulario en modo de vista y prueba el funcionamiento. Cada vez que se actualice la caja de texto "txtSobrante", el código calculará el nuevo valor de "sobrante" en función de los valores de "a compensar" y "compensadas" del registro actual y el valor anterior de "sobrante". Además, establecerá el valor de "sobrante" del registro anterior a cero.

Con esta solución, podrás realizar los cálculos y actualizaciones en los registros sucesivos utilizando los valores de los registros anteriores.

Espero que esta solución sea útil para tus consultas. ¡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