Sumar al campo de un informe un campo de recorset

Hola Lechuza

A ver si en esta me echas una mano.

Tengo un informe en base a una consulta de union, en el que aparece los códigos contables y los saldos, (balance general)

Dentro del informe en la actividad al cargar tengo un código que me hace un recordset para determinar las utilidades pasadas, esto funciona bien porque le asigno el valor del recordset a un campo independiente y ahí sale.

Ahora necesito que el valor del recorset se sume a la cuenta contable con código 320000.

Pero el problema es que al abrir el informe me cambia TODOS los valores del informe con un solo valor, solo necesito que se aplique a una linea que contenga el código 320000. He aquí lo que hice:

Dim rstUtilidadPerdida As Recordset
Dim SQLtxt As String
Dim FchFinal As Date
FchFinal = Forms!MenuReportes!FechaFinal.Value
SQLtxt = "SELECT Sum((Nz([Débitos],0)-Nz([Créditos],0))*-1) AS UtilidadPerdidaAnterior"
SQLtxt = SQLtxt & " FROM (transacciones INNER JOIN Deptos ON transacciones.idDepto = Deptos.IdDepto) INNER JOIN CatalogoGnr ON (transacciones.CodCta = CatalogoGnr.CodCta) AND (Deptos.IdDepto = CatalogoGnr.idDepto)"
SQLtxt = SQLtxt & " WHERE (((CatalogoGnr.idGrupoCta) Between 4 And 5) AND ((transacciones.Fecha)<=#" & Format(FchFinal, "mm/dd/yyyy") & "#));"
Set rstUtilidadPerdida = CurrentDb.OpenRecordset(SQLtxt, dbOpenSnapshot)
If rstUtilidadPerdida.EOF And rstUtilidadPerdida.BOF Then
Exit Sub
Else
If Me.CodCta = 320000 Then
Me.Saldos = Nz(Val(Me.Saldos), 0) + rstUtilidadPerdida.Fields("UtilidadPerdidaAnterior").Value
' Else
' Me.Saldos = Me.Balance
End If
End If
Me.Texto62 = rstUtilidadPerdida.Fields("UtilidadPerdidaAnterior").Value
rstUtilidadPerdida.Close
Set rstUtilidadPerdida = Nothing

1 Respuesta

Respuesta
1

lo mas sencillo que podes hacer es que tu primer campo independiente (imagino que es un textbox), le quites en el código, la parte que intenta sumarse a la cuenta 320000, entonces agregas otro campo independiente, y a ese le pones la expresión (no código), siinm([CodCta] = "320000", [Saldos] = Nz(Val(Saldos), 0)+[campo independiente1],[Saldos]=[Balance])

Ahí lo que hace es sumar tu campo independiente que contiene el recordset mas la cta con código 320000, o reflejar el valor del campo balance.

En otras palabras haces un campo para el recordset, y otro para la suma condicional.

Espero te sirva,

( ¿Con el tema del informe anterior y el subformulario pudiste hacer algo?)

Saludoss!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas