Application/DoCmd Echo and Painting Not Working

    I have reviewed many posts regarding this problem but none of the information has solved my problem.  I have a form with combo boxes used to create a filter for the underlying recordset of the form.  The filtering works but I would like to eliminate the extra "interim" records that are displayed prior to getting to the desired record.  By extra "interim" records I mean that when the user makes a selection in the combo of a CustomerID, the CustomerID displayed at the time the combo selection is made, may be contained within the newly filtered group of records.  If it is, I want it to remain the currently displayed record when then filter is set.  What happens is that the first record of the filtered recordset displays first then the previously current record is displayed.  I do not want to see the "interim" first record of the filtered recordset.  The relevant code looks like this:

Me.FilterOn = False
Me.Filter = ""
Dim strFormFilterSQL as string
strFormFilterSQL = "Some Criteria"
Me.Filter = strFormFilterSQL
Me.FilterOn = True
If cboCustIDFilter = CustID_Displayed_B4_Filter_Was_ Set Then
     'Get the record for CustID_Displayed_B4_Filter_Was_ Set
End if

     This seems like it should be very simple but I have tried placing DoCmd.Echo, Application.Echo and Me.Painting at various locations in the code and cannot get the "Interim" record to stop displaying.
     Can any of the experts out there tell me if this can be done and, if so, how?



dontheeAsked:
Who is Participating?
 
zoom2000Connect With a Mentor Commented:
Why dont you use the bookmark Property of the form


dim rs as recordset
set rs = me.recordsetclone

' Save the Bookmark  first
set rs.bookmark = me.bookmark

If cboCustIDFilter = CustID_Displayed_B4_Filter_Was_ Set Then
 me.bookmark = rs.bookmark
End if


0
 
Rey Obrero (Capricorn1)Commented:
perhaps a picture or image of your form would help to understand what you want to happen. (plus the explanation)
0
 
dontheeAuthor Commented:
Perhaps all the words of explanation have obscured the simplicity of this problem.  The user is sitting there with an invoice form whose underlying recordset is all invoices for all customers. The user selects a customer from a combo box which filters the invoices to that customer.  If the invoice currently displayed on the screen is for a customer that falls within the filtered customer group, I want the user to see that one, not the first one of the newly filtered group of records.  This works but in doing so the first record of the newly filtered recordset is displayed followed by  the desired one.  I don't like the way this looks (too much movement on the form).  So, how can I keep the first record of the newly filtered recordset from displaying?
0
 
dontheeAuthor Commented:
Here's a picture of the form in question.
Echo-Not-Working.jpg
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.