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

Populate report with OpenArgs with Grouping

Hello,

I pass a SQL statement to a report  like this:

"Select [Date], [DateClosed],[MDR], [ShipperId], [ScrapCode], [Program], [PartNumber], [PartName], [QTY],[PartCost],[EXTCost], [Supplier], [MDRClosed] from tblSupplierDebitSummary  Where [Date] Between #" & Me.Start_Date.Value & "# and #" & Me.End_Date.Value & "# GROUP BY [Supplier], [MDR],  [Date], [DateClosed], [ShipperId], [ScrapCode], [Program], [PartNumber], [PartName], [QTY],[PartCost],[EXTCost], [MDRClosed] ORDER BY Suppler;"


DoCmd.OpenReport "New Supplier Debit Summary", acViewPreview, , , , strSQL

Open in new window




And on the report I do this:

If Not IsNull(Me.OpenArgs) Then
 Me.RecordSource = Me.OpenArgs
 End If


This all works great. Now I need to Group By Supplier and MDR and page each distinct supplier to a its own page. Hope that makes sense.

I have tried this approach but it does not work:
I have seen that you can right click on the report detail and choose sorting and grouping. I have tried that but get and error that supplier is invalid. I presume this is because the report does not know about the data?


Is there a way to do grouping, sorting and paging in VBA?
0
gogetsome
Asked:
gogetsome
  • 5
  • 4
1 Solution
 
mbizupCommented:
Try this...

Set the recordsource of your report to this query (no criteria)

Select [Date], [DateClosed],[MDR], [ShipperId], [ScrapCode], [Program], [PartNumber], [PartName], [QTY],[PartCost],[EXTCost], [Supplier], [MDRClosed] from tblSupplierDebitSummary ORDER BY  [Supplier], [MDR],  [Date], [DateClosed], [ShipperId], [ScrapCode], [Program], [PartNumber], [PartName], [QTY],[PartCost],[EXTCost], [MDRClosed]

Then set the grouping and sorting in your report as needed

Remove the reports Open Event code that sets the recordsource based on Open Args.

And change the code that opens the report to this:

Dim strSQL as string
 strSQL =  "[Date] Between #" & Me.Start_Date.Value & "# and #" & Me.End_Date.Value & "#"
DoCmd.OpenReport "New Supplier Debit Summary", acViewPreview, WhereCondition := strSQL

Open in new window

0
 
gogetsomeAuthor Commented:
Thank you mbizup for your assistance. Everything seems logical and works up to the last change.
these controls are not on the report and are on another form

 strSQL = "[Date] Between #" & Me.Start_Date.Value & "# and #" & Me.End_Date.Value & "#"
0
 
mbizupCommented:
Ok - that block of code should go on the form that opens the report (not in the report itself)
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.

 
mbizupCommented:
Commenting the code so that it is clearer (it should be in something like a button click event on the form where the user picks the dates):


Dim strSQL as string
' Define the criteria, based on the dates the user has chosen on this form
 strSQL =  "[Date] Between #" & Me.Start_Date.Value & "# and #" & Me.End_Date.Value & "#"

' Open the report, based on the above criteria (the WhereCondition parameter)
DoCmd.OpenReport "New Supplier Debit Summary", acViewPreview, WhereCondition := strSQL

Open in new window

0
 
gogetsomeAuthor Commented:
Yes, the code works perfectly and much better than how I was rendering the report. Now I can take advantage of the sorting and grouping and keeptoghether. AWESOME!

One more question, I have sorting and grouping by supplier, but each row in the result set get it's own page. I need to have a page for each supplier. Can you see by my setting what I did wrong? OR is there another place I need to adjust to accomplish my goal?sorting and grouping settings
0
 
gogetsomeAuthor Commented:
I figure it out! Thank you so much for your help.
0
 
mbizupCommented:
Off hand, the settings look okay.  Can you post a sample database, with any sensitive data removed or masked?

I will be out for several hours, but if you need a quicker response, go ahead and post that as a new question.
0
 
mbizupCommented:
Good for you!  Can you post what you did?
0
 
gogetsomeAuthor Commented:
By the image above I added a group header then selected the group header and set the Force New Page to Before Section in the properties window. Works like a champ.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now