Sumar o Restar con datos del registro anterior

Estoy haciendo una base de datos para mi grupo donde tenemos el control de los socios y esas cosas y donde también le hemos agregado una parte de contabilidad del grupo de forma que tengo el control de si han pagado los socios o no. Bueno y vamos con la duda:
En esta parte de contabilidad tengo un campo de ingresos, otro de gastos y por ultimo uno de saldo (a parte de los de fecha, nº de factura y concepto). Lo que quiero que haga es que dependiendo de si es gasto o ingreso sume o reste al saldo, pero el saldo al que tiene que sumar o restar es el del registro anterior y poner el resultado automáticamente en el registro actual. (Como me explico muy mal te pongo una tabla de ejemplo).
Ingresos | Gastos | Saldo
5000 | 0 | 5000
5000 | 0 | 10000
0 | 3000 | 7000

1 Respuesta

Respuesta
1
Tendrías que hacer una sentencia SQL que haga lo que pedís puesto que sería lo más simple de hacer, a la cual le pasas el nro de factura y el id del registro anterior y automáticamente te devolvería en el rs el saldo, pero como no me decís que tipo de conexión ni BD estas usando poco te puedo ayudar.
Suerte
.: Gydba ".
Utilizo Access 2000.
No se si este dato es suficiente.La verdad que no te he entendido mucho, ni se que quieres decir con lo del tipo de conxión.
Es la primera base de datos que hago (y la verdad que me siento orgulloso de todo lo que he conseguido sólito) y la parte de la consulta que hago, la ha solucionado con un chanchullo de una tabla en Excel, pero abierta en Access, de forma que Access inserta los datos en la tabla y Excel los suma, pero lo ideal sería que rulara la BD solita.
Por lo que he estado mirando en ejemplos de mucha gente, debería hacer un módulo en VB, pero no controlo nada de VB. Si ves que es mucha liada déjalo y ya lo resolveré el día de mañana cuando tenga tiempo de aprender un poco más de programación, si no pues agradecidísimo con toda mi alma, y sea lo que sea muchas gracias por la ayuda.
Te doy un ejemplo usando código para conectarme (tenés que tener agregada en las referencias del proyecto ADO 2.5 en adelante). Te hago una pequeña explicación con ejemplos:
' Así creamos la conexión
Dim ConnectStr As String
Dim Usuario As String
Dim Clave As String
Dim Modo As String
Dim RutaBD As String
RutaBD = App.Path & "\Facturas.mdb"
Usuario = "User ID=Admin;"
Clave = "Jet OLEDB:Database Password=''"
Modo = "Mode=Share Deny None;"
ConnectStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;"
Set Conexion = New Connection
Conexion.Open tmpConnectStr & Usuario & "Data Source=" & RutaBD & ";" & Modo & Clave
' Ahora creamos el rs
Dim varSQL as String
Dim varRS As Recordset
Set varRS = New Recordset
With varRS
.LockType = adLockReadOnly
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.Open varSQL, Conexion
End With
Donde varSQL es la sentencia SQL que vamos a ejecutar.
Para setear el Rs en un datagrid no tenés mas que poner:
Set Datagrid1.DataSource = varRs
' Fin del micro tutorial
Ahora vamos por la sentencia SQL (sin varSQL no te va a andar nada).
varSQL="SELECT f.Fecha, f.NroFac, f.Concepto, f.Ingresos, f.Gastos, Saldo = SUM(f.Ingresos - f.Gastos) FROM Facturas F WHERE f.IDSocio LIKE 'Juan';"
Suponiendo que Facturas es el nombre de la tabla y estés buscando solo los registros que comiencen con el nombre de Juan.
Espero te sirva
Suerte
.: Gydba :.
Perdón por tardar tanto en contestar pero ya sabes los exámenes, ya he solucionado el problema, no 100% con los datos que me diste, pero si me ha ayudado mucho. Gracias de corazón

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas