Usuario
Como sumar un campo de recorset a un campo de un informe

Pregunta
-
Hola
Tengo un informe de un Balance General, donde salen sus códigos contables y saldo a una fecha.
Básicamente necesito que si el código contable fuera "320000" se sume la utilidades o perdidas del periodo anterior, Las utilidades del periodo anterior las he calculado con un recorset, ya la prove en el diseño de la consulta de access.
De esta manera:
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.CodCta = Me.Balance + rstUtilidadPerdida("UtilidadPerdidaAnterior")
End If
End If
rstUtilidadPerdida.Close
Set rstUtilidadPerdida = Nothing
Ya sea que lo ponga en la acción al abrir o en la acción al cargar del informe me dice que no encuentra el CodCta, que es el campo que estoy usando de criterio para sumar el campo del recorset.
La parte en negrita es donde me sombrea Access.
Gracias.
Todas las respuestas
-
Hola!
como he dicho un millar de veces, cuando Access dice que no encuentra algo es porque ese algo no existe o no está donde le dices que lo busque, así que, verifica el nombre del control y que realmente está en el formulario que contiene ese código.
Saludos a todos desde Huelva <br/> http://www.mvp-access.es/emilio/
-
Muchas gracias por responder pero Tranquilo Emilio...mucho trabajo!!
Bueno mira:
1) ya revise el nombre y esta bien.
2) ya revise el recorset y el resultado es correcto.
3) Es un informe no un formulario.
El código lo pongo en la acción al cargar o al abrir el informe y el resultado es el mismo, no se que cosa me hace falta. donde debo poner el código al cargar o abrir el informe.
Que tengas Paz, salud y bendición.
-
Hola
Cambie mi codigo, pero ahora es que no hace nada, no suma, pero si lo pongo en un campo independiente si puedo ver el resultado del recorset.
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
End If
End If -