• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 345
  • Last Modified:

Access balance forward

Hi experts,

I need to run a balance forward, i have a dsum on the page header that is the previous balance and i need to carry it to the recordset. I have it working with the following exception, it the report goes to a new page it adds the 1st entry on that page twice...

bbf is the dsum
cr is the recordset
b is the running sum that code outputs  = help

Option Compare Database
Dim x As Integer
 
Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer)
    x = 0
End Sub
 
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
   If x = 0 Then
       b = Nz(cr, 0) + Nz(bbf, 0)
       x = 1
   Else
       b = Nz(cr, 0) + b.OldValue
   End If
End Sub

Open in new window

0
1desman1
Asked:
1desman1
  • 9
  • 6
1 Solution
 
slamhoundCommented:
Still trying to get my head around your logic but one thing you can try...

Add debug.print "I'm here!" in the main Sub to make sure it's only being executed once. Hit Ctrl-G to see the output. If it's being hit twice per page then it's not surpirsing you're getting doubles.
0
 
tbsgadiCommented:
Hi 1desman1,

Have you tried using the Running Sum feature of Report Textboxes?

Gary
0
 
1desman1Author Commented:
I'm renowned for being vague... sorry, also i pulled the above code off this site... just trying it get it to work for me

What I need it a running sum with a before balance i.e in the header i have a calculated field that prints as follows:

balance = 100

Cr..........  Balance
10......... 110
10.........120
ect the above code does work BUT on the second page it does this:
Cr..........  Balance
10......... 140 (counts the 2nd page first total twice, should be 130)


Any clearer?

Thanks

0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
1desman1Author Commented:
@ tbsgadi

yes but it counts the balance for every recordset
0
 
1desman1Author Commented:
i've attached a demo database of what i'm talking about, preview the report  and look at the second page.

if anyone can achieve what i'm after would be great ~ Thanks
test.mdb
0
 
1desman1Author Commented:
help
0
 
slamhoundCommented:
I would sill be interested in how often the events are triggered. If the Detail_Format is being triggered twice then there is your problem.

Looking at your DB now...

0
 
slamhoundCommented:
Hmmm...Your database shows the balance as a static field and I only get one (very long) page in the report. Are you able to post your stripped down database with the acutal report?
0
 
1desman1Author Commented:
thanks slamhound, i did try that but nothing displayed different.. i hit ctrl+g and it opened the VB editor. not sure what to do
0
 
1desman1Author Commented:
if you view in print it displays pages, did you do that? there is a form in there called Report which open in print view

thanks again
0
 
1desman1Author Commented:
I see what you're saying with the Debug.Print "I'm here!" (in the message dialog in VB editor) it only printed once
0
 
slamhoundCommented:
What version of Access are you using?
0
 
1desman1Author Commented:
2007
0
 
slamhoundCommented:
This is a cheat because I can't see how Access is messing this up.

Add:
b = b - Nz(Cr, 0)

to the form's On Page event. This works when Cr is identical so check to make sure the system is using the right Cr.

0
 
1desman1Author Commented:
Thanks, so it must be a Access bug... but IF there are 2 identical amounts there will be problem???
0
 
slamhoundCommented:
My only fear is that the subtraction code I gave you will take the Cr from the current record on page 2 and not the old record on page 1. If they are identical it will work fine. The only way to tell is to try it out with some variations.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 9
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now