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
Any help would be appreciated. The report is due tomorrow.
SampleReport.PNG
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
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
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
ASKER
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.
ASKER
Here it is. This is one teams query results. I really appreciate your help.
Sample.xlsx
Sample.xlsx
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Closing Request - issue resolved.
ASKER
I was able to find the answer to my question.
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!