Link to home
Start Free TrialLog in
Avatar of smolbeck367
smolbeck367

asked on

Cross tab report totals

Hi, I have an access 2007 cross tab report that I am building at run time. I noticed that the total column does not add correctly. I have done the math several times and cannot see where it may be getting these amounts from. I have attached a sample below. I did not include the columns headings but the last column is supposed to add the columns.

Any help would be appreciated. The report is due tomorrow.
SampleReport.PNG
Avatar of Dale Fye
Dale Fye
Flag of United States of America image

What code are you using to achieve this report?

I assume you are using the report Open or
Load event to assign columns to the control source of your controls.  What code are you using fot the control source of your totals column?  Are you using the NZ function!
Avatar of smolbeck367
smolbeck367

ASKER

I am using the code below to generate the columns and total. I am not using NZ. I took this from Office help on creating dynamic cross tab reports.

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
   
   Dim intX As Integer
   Dim lngRowTotal As Long

   '  If PrintCount is 1, initialize rowTotal variable.
   '  Add to column totals.
   If Me.PrintCount = 1 Then
      lngRowTotal = 0
       
      For intX = 2 To intColumnCount
         '  Starting at column 2 (first text box with crosstab value),
         '  compute total for current row in the "Detail" section.
         lngRowTotal = lngRowTotal + Me("Col" + Format(intX))

         '  Add crosstab value to total for current column.
         lngRgColumnTotal(intX) = lngRgColumnTotal(intX) + Me("Col" + Format(intX))
      Next intX
       
      '  Put row total in text box in the "Detail" section.
      Me("Col" + Format(intColumnCount + 1)) = lngRowTotal
      '  Add row total for current row to grand total.
      lngReportTotal = lngReportTotal + lngRowTotal
   End If
End Sub
It looks like your columns are constant, since you are not doing anything with the other columns in this code.  If that is the case, I think I would use the form load event, and rather than compute the value of the totals column, would define a string that would become the control source of the totals column, something like (from my iPad so may contain typos).

Assuming your field names are like Col1, Col2, Col3, then try something like.

For intX =2 to intcolumncount.
    strCS = strCS & "+ NZ([col" & intX & "])"
Next
StrCS = mid(strCS, 2)
Me("col" + (intColUmnCount +1)).controlsource = strCS
I built the report to accept the largest number of associates we have on a team. In our case that would be 11.  Those are my column names.  How would I adjust the code I have not to create the total column and replace it with your code. I am really new to cross tab reports and building them dynamically. I appreciate your patience and guidance.
Can you provide me a sample of the output of your Cross-tab query?  Output the query to Excel and change the row and column names as you see appropriate.  That way, I can simply import that into the example crosstab report database I have.  If you need to change the column headings that will be fine, you will get the idea.
Here it is. This is one teams query results. I really appreciate your help.
Sample.xlsx
ASKER CERTIFIED SOLUTION
Avatar of smolbeck367
smolbeck367

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Closing Request - issue resolved.
I was able to find the answer to my question.