Te platico lo que tengo que hacer 1) Tengo una tabla donde tengo los sig. Campos: ID, Programa, Partida, Autorizado, Monto 2) El monto debe restarse de autorizado para generar un saldo 3) Al saldo se le seguirán restando montos posteriores para generar saldos actualizados
1 Respuesta
Respuesta
1
1
Anónimo
Tendrás que tener un campo por donde ordenar (por ejemplo una fecha) y un campo donde meter el saldo... Te envío una función que tengo para calcular un saldo: Tabla Saldos, campos: Fecha, SaldoAnterior, Debe, Haber, Saldo actual El código sería: Function CalcularSaldo() Dim db As Database Dim rs As Recordset Dim vSaldo As Double Set db = CurrentDb() Set rs = db.OpenRecordset("Select * from Saldos order by Fecha") Do While Not rs.EOF vSaldo = rs!SaldoAnterior rs.Edit rs!SaldoActual = vSaldo + rs!Debe - rs!Haber rs.Update vSaldo = rs!SaldoActual rs.MoveNext If rs.EOF Then Exit Do End If rs.Edit rs!SaldoAnterior = vSaldo rs.Update Loop End Function Me cuentas.
Gracias Angeles, pero se me paso comentarte que es a través de un formulario como se captura la información, ¿el código que me enviaste lo pongo en el formulario? Gracias de nuevo
Me tendrás que comentar que hace exactamente el formulario y a que tabla pasa los datos. El código que te envié es para calcular el sado en TODA la tabla, pero si utilizas un formulario para introducir los datos, seguramente sería conveniente ir calculando el saldo en el momento. Me cuentas.
Gracias por tu atención Angeles, te explico lo que hay que hacer: 1) Tengo una tabla donde tengo los sig. campos: ID, Programa, Partida, Autorizado, Monto, saldoActual Los programas son 12 (300,3099,2388,1888, etc.) no se repiten Las Partidas 100, 200,300, 400, etc (se repiten en algunas en cada programa) El Autorizado es el el presupuesto inicial para cada partida Tengo un formulario en base a la tabla donde 2) El monto debe restarse de autorizado para generar un saldo 3) Al saldo se le seguirán restando montos posteriores para generar saldos actualizados Gracias de antemano por tu ayuda y espero tu respuesta Que tengo que hacer para calcular el saldo actualizado cada vez que consulto por partida para poder hacer un nuevo cargo a dicha partida en base al saldo actualizado Espero haberme explicado, gracias por tu atención
En la tabla, que llamaré Saldos, los campos Programa, Partida, Autorizado, Monto, Saldo, FxMovimiento. He añadido un campo fecha porque creo que si en algún momento quieres hacer un informe o tener constancia de cuando se hizo el monto este campo te lo puede dar, lo llenaremos con la fecha del día. Un formulario independiente (es decir, no está basado en ninguna tabla ni consulta) Un cuadro combinado que llamaremos selPrograma para elegir el programa en el que vas a añadir un monto. En el origen de la fila: SELECT Programa FROM saldos GROUP BY Programa ORDER BY programa; En la acción al hacer clic ---> Procedimiento de evento ---> picas en el cuadrado de la derecha, el de los ... y pones: Me. Refresh Form! TxtMontoNuevo. SetFocus Varios cuadros combinados para visualizar la Partida, Autorizado, suma de montos y saldo actual, los llamaremos: TxtPartida-->Origen del control: =DBúsq("[Partida]";"[Saldos]";"Programa=FormselPrograma.Value") txtAutorizado ...> Origen del control: =DBúsq("[Autorizado]";"[Saldos]";"Programa=form!selPrograma.value") txtMontos ---> Origen del Control: =DSuma("[Monto]";"[Saldos]";"Programa=form!selPrograma.value") txtSaldo ---> Origen del Control: =Formulario!txtAutorizado.Valor-Formulario!txtMontos.Valor A estos 4 cuadros de texto yo les pondría Punto de Tabulación=No ya que en el cuadro combinado selPrograma, al hacer clic, le mandamos el foco al último cuadro de texto que vamos a crear, el cuadro de texto en el que meterás el importe nuevo: TxtMontoNuevo (no pongas nada en origen del control ya que vamos a meter el valor que queramos. Por último un botón que llamaremos Enviar, en la acción al hacer clic el código: DoCmd.RunSQL "Insert Into Saldos (Programa, Partida, Autorizado, Monto, Saldo, FxMovimiento) Values ('" & Form!selPrograma.Value & "', '" & Form!txtPartida.Value & "', '" & Form!txtAutorizado.Value & "', '" & Form!txtMontoNuevo.Value & "', " & Form!txtSaldo.Value & "-" & Form!txtMontoNuevo.Value & ",date())" Form!txtMontoNuevo.Value = "0" Form! SelPrograma. SetFocus Me. Refresh Es decir, primero ejecutamos una consulta de insertar datos en la tabla saldos con los valores de los cuadros de texto, después ponemos el valor del cuadro de texto txtMontoNuevo a 0 y mandamos el foco al cuadro combinado por si queremos seguir insertando datos en este u otro Programa, por último actualizamos el formulario. Me cuentas.
1 comentario
Mi nombre es galo, tengo desarrollada un BD para control de bancos la tabla transacciones básicamente tiene los siguientes campos id tipotransaccion, fecha transacción, numcuebnta, banco, valor transacción, estado el tipo corresponde a deposito, cheque, transf de pago y transf dedeposito, elestado anulado. Tengo otra tabla bancos con los campos numcuenta, banco, saldo inicial, en donde tengo el nuk de la cuenta coo Pk1 y el campo que me interesa jalar es elsaldo actual. Quiero hacer un informe que me permita obtener el estado de cuenta de un mes determinado pero que me refleje el saldo inicial del mes anterior y si es enero el valor del saldo inicial, he probado de todo. Gracias - Galo Alvear
Mi nombre es galo, tengo desarrollada un BD para control de bancos la tabla transacciones básicamente tiene los siguientes campos id tipotransaccion, fecha transacción, numcuebnta, banco, valor transacción, estado el tipo corresponde a deposito, cheque, transf de pago y transf dedeposito, elestado anulado. Tengo otra tabla bancos con los campos numcuenta, banco, saldo inicial, en donde tengo el nuk de la cuenta coo Pk1 y el campo que me interesa jalar es elsaldo actual. Quiero hacer un informe que me permita obtener el estado de cuenta de un mes determinado pero que me refleje el saldo inicial del mes anterior y si es enero el valor del saldo inicial, he probado de todo. Gracias - Galo Alvear