Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 830
  • Last Modified:

Clear filter from report after preview/print action

I have multiple list boxes on a form. Each list box is set to multiselect. I am using VBA to capture the users selections from the list boxes and am using this to filter a report. It all works fine except occasionally the filter remains active with the report and so shows prior selections. I want to automatically reset the filter after the report has been previewed or printed.

I have tried multiple methods and all seem to have unintended and adverse consequences.

Am looking for some suggestions. A code snippet showing the creation of the filter string.

Thanks!

' Report will not filter if open, so make sure it is closed
    If CurrentProject.AllReports(strDoc).IsLoaded Then
        DoCmd.close acReport, strDoc
    End If
 
' This section determines what option the user has selected from the print option group.
' based upon the user selection, it will either Preview, Print or Export to Excel
'========================================================================================
 
 If Print_Company_Product_Support.Value = 2 And PrintReport_OptionGroup.Value >= 1 And Len(strWhere) <= 0 Then ' If the select criteria is enabled and the user is trying to print then check that values have been selected
        
    MsgBox "Please Select A Value From One of the Dropdown Boxes", vbInformation, "No Filter Criteria Selected!"
     
     Else
        intOptionValue = PrintReport_OptionGroup.Value ' Set variable to the Option group value
 '       MsgBox intOptionValue ' Display Option variable for TESTING purposes
        Select Case intOptionValue   ' Go through case options and act based upon its value
            Case 1   ' if preview report is selected then preview
            
                ' This is a temporary message while I figure out how to preview such a large report
                MsgBox "This feature is not yet working due to the size of the report"
  
  '               DoCmd.OpenReport strDoc, acViewPreview, , strWhere
   '              Reports(strDoc).FilterOn = True
'-----
    ' case 2 not yet setup
        
            Case 3  ' if Export report is selected then export to Excel
                   DoCmd.OpenReport strDoc, acViewPreview, , strWhere, acIcon
                   Reports(strDoc).FilterOn = True
                   RunCommand acCmdOutputToExcel
                   DoCmd.close acReport, strDoc
        End Select
        
   End If
    
 '========================================================================================
   
 
Exit_Handler:
    Exit Sub
 
Err_Handler:
    If Err.Number <> 2501 Then  'Ignore "Report cancelled" error.
        MsgBox "Error " & Err.Number & " - " & Err.Description, , "cmdPreview_Click"
    
        ElseIf Err.Number = 2451 Then
        ' Ignore error and reset
         Err.Clear
    End If
    
    Resume Exit_Handler
 
End Sub

Open in new window

0
dglover
Asked:
dglover
  • 4
  • 2
1 Solution
 
Jeffrey CoachmanMIS LiasonCommented:
dglover,

If your ultimate question is how to clear the listboxes, then use code like this after your Preview/Print command code:

Dim ctl As Control

For Each ctl In Me.Controls
    If ctl.ControlType = acListBox Then
        ctl = ""
    End If
Next ctl


JeffCoachman
0
 
Jeffrey CoachmanMIS LiasonCommented:
Something like this:

Sub YourCode()
Dim ctl As Control

    'YourCode
    'Your Print/PreviewCode
    For Each ctl In Me.Controls
        If ctl.ControlType = acListBox Then
            ctl = ""
        End If
    Next ctl

'...

End Sub
0
 
dgloverAuthor Commented:
Thanks for the response. I can see how your suggestion would work well to clear the list boxes. My problem doesn't seem to be with the listboxes. It appears to be that the filter that was assigned to the report occasionally isn't removed from the report "filter" control. I don't use VBA all that much so I may be missing the point but I don't see how clearing the list boxes will also make sure the report filter box is cleared.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
Jeffrey CoachmanMIS LiasonCommented:
"I don't see how clearing the list boxes will also make sure the report filter box is cleared."
You stated listboxes in your original question.

My thought was that the "Filter" took it's value from the lisbox.
Hence it\f the list box was claeaed, so to would be the filter.

If all you need to do is clear the filter, use this after your code to Preview print the report:

    Me.Filter=""
    Me.FilterOn=False
    Me.Requery

JeffCoachman
0
 
dgloverAuthor Commented:
Great! That seems to work.
0
 
Jeffrey CoachmanMIS LiasonCommented:
;-)
0

Featured Post

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

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