Access - Saldo por Cliente

 
Vista:
sin imagen de perfil
Val: 15
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Saldo por Cliente

Publicado por Angel (90 intervenciones) el 14/10/2016 20:59:01
Hola a todos y gracias. Si podéis indicarme el camino de mi cuestión. He visto en la pagina de Neckkito un ejemplo de saldo continuo sobre un form continuo que usa este codigo;

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Private Sub cmdSaldos_Click()
'---Requiere tener registrada la referencia "Microsoft DAO 3.6 Object Library"
'---o biblioteca equivalente---------------------------------------------------
 
        'Declaramos las variables
    Dim rst As DAO.Recordset
    Dim vIng As Currency, vGto As Currency
    Dim vSaldo As Currency
    Dim miSql As String
 
        'Creamos la consulta para ordenar los movimientos por fecha
    miSql = "SELECT * FROM TMovimientos ORDER BY TMovimientos.Fecha"
            'Inicializamos vSaldo
    vSaldo = 0
        'Creamos el recordset sobre la SQL
    Set rst = CurrentDb.OpenRecordset(miSql)
        'Si no hubiera registros saltamos a Salida
    If rst.RecordCount = 0 Then GoTo Salida
        'Iniciamos el proceso de actualización de [Saldo]
    With rst
        .MoveFirst
        Do Until .EOF
                'Cogemos el valor del ingreso. Si no hay valor hacemos que el valor por defecto sea cero
            vIng = Nz(.Fields("Ingreso").Value, 0)
                'Cogemos el valor del gasto. Si no hay valor hacemos que el valor por defecto sea cero
            vGto = Nz(.Fields("Gasto").Value, 0)
                'Calculamos el saldo del movimiento
            vSaldo = vSaldo + vIng - vGto
                'Escribimos dicho valor en la tabla
            .Edit
            .Fields("Saldo").Value = vSaldo
            .Update
                'Nos movemos al siguiente registro
            .MoveNext
        Loop
    End With
        'Cerramos el formulario actual
    'DoCmd.Close acForm, Me.Name
        'Abrimos FMovUpdated con la información actualizada en vista sólo lectura
    DoCmd.OpenForm "FMovUpdated", , , , acFormReadOnly
Salida:
        'Cerramos conexiones y liberamos memoria
    rst.Close
    Set rst = Nothing
End Sub


Los valores numéricos están en una sola tabla y cuando intento hacer arreglos para agrupar registros por IdSocio, no funciona, vamos que deja de hacer las cuentas bien. El ejemplo esta muy bien para una única cuenta, ¿Alguien puede indicarme el camino para conseguirlo.?
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
sin imagen de perfil
Val: 15
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Saldo por Cliente

Publicado por Angel (90 intervenciones) el 19/10/2016 20:55:57
Bueno, gracias una vez más por tu aporte. Lo he aplicado a mi proyecto y funciona perfectamente a falta tan solo de unas mejoras en el diseño de los forms para que se vea más bonita.
Gracias de nuevo Neckito.
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