K. I deleted the embedded macro behind the AfterUpdate, then activated some VBA that does the same thing. Appears to work.
Code:
Private Sub cboFilterFormExpenseType_AfterUpdate()
Me.Filter = "[Expense Type] = " & Me.cboFilterFormExpenseType.Column(0)
Me.FilterOn = True
Me.Requery
End Sub
And here's the code to turn off the filters.
Code:
Private Sub cmdShowAllExpenses_Click()
Call SwitchFilterOff
Me.cboFilterFormExpenseType.SetFocus
Me.cboFilterFormExpenseType = Null
End Sub
Private Sub SwitchFilterOff()
Me.FilterOn = False
Me.Filter = ""
End Sub
Now, one thing I noticed is that you're calling a few routines "functions" that don't return values. It ain't a function if it ain't returning a value.
Don't try to fix it now, since it's working, but all of those should be subs instead, and they should be invoked with "Call Subname" rather than just "FunctionName".
Sweet dreams, and let me know if you need anything else. I'll be on holiday tomorrow, but I'll try to check back in the morning (my time) anyway.
By the way, my name's Dal.