Solved

Populate report with OpenArgs with Grouping

Posted on 2013-11-12
9
312 Views
Last Modified: 2013-11-12
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
Comment
Question by:gogetsome
  • 5
  • 4
9 Comments
 
LVL 61

Expert Comment

by:mbizup
ID: 39642290
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
 

Author Comment

by:gogetsome
ID: 39642336
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
 
LVL 61

Expert Comment

by:mbizup
ID: 39642352
Ok - that block of code should go on the form that opens the report (not in the report itself)
0
 
LVL 61

Accepted Solution

by:
mbizup earned 500 total points
ID: 39642364
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
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 

Author Comment

by:gogetsome
ID: 39642392
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
 

Author Closing Comment

by:gogetsome
ID: 39642519
I figure it out! Thank you so much for your help.
0
 
LVL 61

Expert Comment

by:mbizup
ID: 39642520
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
 
LVL 61

Expert Comment

by:mbizup
ID: 39642522
Good for you!  Can you post what you did?
0
 

Author Comment

by:gogetsome
ID: 39642539
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

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Join & Write a Comment

In Debugging – Part 1, you learned the basics of the debugging process. You learned how to avoid bugs, as well as how to utilize the Immediate window in the debugging process. This article takes things to the next level by showing you how you can us…
Introduction When developing Access applications, often we need to know whether an object exists.  This article presents a quick and reliable routine to determine if an object exists without that object being opened. If you wanted to inspect/ite…
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

758 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

18 Experts available now in Live!

Get 1:1 Help Now