'Endless form not showing after filter applied previously

I am using unbound endless forms to display data from my database. The data source is set to queries which provide data to show on the form. All tinkering with the data itself on the form is blocked (entry, adding, deleting, etc.). The data on the form can, however, be filtered through Access' standard ways (right clicking on the data and selecting the options or through the navigation buttons down the bottom of the form).

I am using another unbound form as a menu. Buttons on the form let the user open the data display forms. The buttons are connected to the forms through an on- click event that triggers a DoCmd.OpenForm ("frmOutput") line of code to display the form.

Recently I've had users report, that opening the endless data display forms from the menu, filtering data on the form and then closing the form without taking the filter out has resulted in the form not being able to be opened again from the menu (clicking the respective button results in no action whatsoever). The bug seems to even save to the application somehow and moving the (frontend) file to another machine still shows the same error of not showing the form.

It seems that the bug appears more often when people use multiple screens, and use the application on their second screen (as per their Windows settings).

Does anybody know what causes the bug or how it can be prevented? Any pointer in the right direction is much appreciated since I am at a loss where to even start looking for the culprit!



Solution 1:[1]

Hard to tell but it sounds like their filter is being saved when form is closed

If you already have an event that opens the form, try to just clear the filter property after it opens. You can do this from all your command buttons by just changing the form name that gets passed to it

Private Sub OpenUnfilteredForm(strFormName as String)

   Dim frm As Form
   
   DoCmd.OpenForm (strFormName)
   DoEvents
   
   If CurrentProject.AllForms(strFormName).IsLoaded Then
       Set frm = Forms(strFormName)
       With frm
          .Filter = ""
          .FilterOn = False 
       End With
   End If

   Set frm = Nothing
End Sub

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 budekatude