Solved

Access 2010 report - detail format event over page break

Posted on 2013-01-25
5
1,219 Views
Last Modified: 2013-01-26
I have an access 2010 report.  On the detail format event I collect some totals.  The totals weren't quite right so I added some debug.print statements to track what was happening.  It seems that when the detail section goes over a page the detail line at the top of the second page is formatted twice.  ie. the detail-format event is triggered twice so that amount is added to the total twice.

The code in the detail_Format event is something like: TotalAmt - TotalAmt + ThisAmt

So, TotalAmt is always equal to what it should be plus the 2nd page first item added in again.  If I change where the page break happens the total changes accordingly.

Is this a bug?  Any ideas how to fix this?  I know I can use sum([field]) to total the detail section automatically but I want to do other things with the totals I collect.
0
Comment
Question by:MonkeyPie
5 Comments
 

Author Comment

by:MonkeyPie
ID: 38821533
Further to my question above....
Perhaps the detail_Format event is not the right place to collect the totals?  But report OnCurrent event doesn't work. So is there another event I can use to step through each record in the source?
0
 
LVL 39

Expert Comment

by:als315
ID: 38821569
Can you upload sample DB and show expected result? You can save current value of some unique field and do not add value to total if this value was not changed from previous event
0
 
LVL 84

Accepted Solution

by:
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 500 total points
ID: 38821900
The format events occur each time Access formats, and Access can perform formatting on the same section more than one.

Access does maintain a 'count' of the formats -  you could refer to that, and if the count > 1 for your section, you could not run your code. See this for a bit more detail:

http://msdn.microsoft.com/en-us/library/office/aa195897%28v=office.11%29.aspx

So, in the Format event that you're using, you could do this:

If FormatCount = 1 Then
  '/ do your calculations
End If
0
 
LVL 57
ID: 38822130
As LSM has said, this is not unexpected and often the report engine will retreat up the page to refomat it.

Besides the Format event, the print even may occur multiple times as well.

The simplest then is to check the FormatCount as LSM suggested.   An alternative is to use the OnRetreat event to subtract the total back out.

Jim.
0
 

Author Closing Comment

by:MonkeyPie
ID: 38823116
Great. Problem solved.  Thanks.
0

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

I see at least one EE question a week that pertains to using temporary tables in MS Access.  But surprisingly, I was unable to find a single article devoted solely to this topic. I don’t intend to describe all of the uses of temporary tables in t…
A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now