Suma desde el registro 1 al actual

Tengo una tabla de para el control del dinero de caja con los campos fecha movimiento, concepto, entrada, salida. Qué consulta tendría que hacer de manera que me sume el saldo que hay en la caja cuando haga el cierre del día, es decir, tendría que se una suma acumulativa que me sumara todas las entradas de dinero y todas las salidas de dinero hasta el día en cuestión.
Respuesta
1
Mediante una consulta es prácticamente difícil, pero menos difícil es con un formulario. En este formulario tendrías que tener un text-box para fecha, otro para salidas, otro para entradas y otro para saldo, ademas de un botón, el cual por el evento de clic tendrá que tener el código adjunto (en el cual tienes que poner el nombre de tus campos). Poniendo en el campo fecha del formulario la fecha hasta donde tienes que calcular, pulsando el botón obtendrás el total de entradas/salidas y saldo hasta la fecha.
Suponiendo que el campo de fecha de la tabla es del tipo fecha y la fecha del formulario es alfanumérico, el código adjunto al botón seria:
Private Sub Comando116_Click()
'
'
Dim basedatos As Database '---> defino una variable tipo base datos
Dim cabpedidos As Recordset '---> defino una variable del tipo recordset
Dim condicion As String
Dim total1 As Integer
'
'
'---> inicializa variables del formulario
'
[total_entradas] = 0
[total_salidas] = 0
[saldo] = 0
[fecha] = 0
'***********************************************************
'---> Averigua datos del dia dado en pantalla sobre pedidos
'***********************************************************
condicion = "SELECT * FROM [tabla_caja] WHERE [fecha_tabla] <= cdate('" + Str([fecha]) + ';")
Set basedatos = DBEngine.Workspaces(0).Databases(0) '--> obtengo la base de datos
Set cabpedidos = basedatos.OpenRecordset(condicion) '--> obtengo y abro la tabla
If Not cabpedidos.EOF Then
cabpedidos.MoveFirst '--> me posiciono en el primer
End If
Do While Not cabpedidos.EOF
If cabpedidos.EOF Then
Exit Do
End If
'
' acumula entradas/salidas en cada lectura
'
'
[total_entradas] = [total_entradas] + cabpedidos![entradas]
[total_salidas] = [total_salidas] + cabpedidos![salidas]
[saldo] = [total_entradas] - [total_salidas]
'
'
cabpedidos.MoveNext '--> me posiciono en el siguiente
Loop
'
Cabpedidos. Close
Basedatos. Close
End Sub

Espero que te sirva, un saludo,
fcosapa

1 respuesta más de otro experto

Respuesta
1
Sí, es lo más lógico.
Gracias por la rapidez pero necesito me digas como hacerlo exactamente pues no tengo ni idea..
Pues haces una consulta, pinchas en la sigma (M girada) pones los campos:
Fecha, debajo de fecha (sustituye 'agrupar por' por 'dónde') en criterios pones la <=[fecha caja]
Entrada suma
Salida suma
(No se por que tienes dos campos, lo lógico es tener 1)
Cuando la ejecutes te pedirá una fecha caja, tecleas la fecha que quieres y ya esta.
El campo Entrada puede ser negativo o positivo y el Salida solo positivo por motivos contables.
Me gustaría que la consulta aparecieran los datos de la siguiente manera (En Saldo apareciera lo que hay realmente en la caja tras cada movimiento)
Movimiento Entrada Salida Saldo
04/05/2009 0          12,76  -658,76
04/05/2009 0            9,74  -646,00
04/05/2009 0          74,76  -636,26
04/05/2009 0            9,11  -561,50
04/05/2009 0          11,33  -552,39
04/05/2009 0          39,66  -541,06
29/04/2009 -30         0       -501,40
29/04/2009 -100       0       -471,40
27/04/2009 0          21,62  -371,40
27/04/2009 0          98,12  -349,78
24/04/2009 89,23     0       -251,66
22/04/2009 0        145,99  -340,89
20/04/2009 0        111,94  -194,90
17/04/2009 0            8,2      -82,96
03/04/2009 0          30,16    -74,76
02/04/2009 0          30,68    -44,60
01/04/2009 0            6,96    -13,92
01/04/2009 0            6,96     -6,96
Eso no se puede hacer en una consulta, requiere un informe, de todas formas aclárate con lo que quieres más que nada por dar una respuesta adecuada. Te he respondido a la primera pregunta pero eso no es lo que quieres.
Perdón por mi desconocimiento pero creí que tendría que ser una consulta. Necesitaría un informe entonces de la manera que aparece en el ejemplo. Gracias por todo de antemano.
Tienes que hacer un informe incluyendo esos campos. Creas otro más en el informe llamado saldo:
=entrada-salida
Y poniéndole en las propiedad 'suma continua' sobre todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas