none
Como sumar un campo de recorset a un campo de un informe RRS feed

  • 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.
    miércoles, 18 de diciembre de 2013 18:04

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/

    miércoles, 18 de diciembre de 2013 18:09
  • 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.

    miércoles, 18 de diciembre de 2013 18:26
  • 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

    miércoles, 18 de diciembre de 2013 19:11
  • EN este código nuevo al Me.Balance por ningún lado, luego ahí está el problema.

    Saludos a todos desde Huelva <br/> http://www.mvp-access.es/emilio/

    jueves, 19 de diciembre de 2013 18:32