bphillips,
You might give this a try or at least someone may be able to expound upon it. This sounds exactly like a problem I just encountered in my db. Here is how I solved it, although rather than use a macro, I strictly stay with code due to the fear future versions of Access may not support macros. In the on-click event of the command button, before the macro is run, place this in the code:
[forms]![formname].Filter=""
I believe what you are actually doing with your macro is applying a filter of sorts. I don't think the "filter" is resetting after the first time you run your macro so by setting it to "" with the above code sets the filter to nothing just as it is when you run your macro for the first time. At least this is the way it appears with my db and the above code solved my problem.
In the event that your macro is just applying a filter, you might give the following code a try in place of your macro in the on-click event of the command button:
docmd.openform "formname1"
[forms]![formname1].Filter=""
docmd.applyfilter "filtername","filtercriteria"
The filter name is the name of a query that you've already created. I don't use both the filtername and the filtercriteria, I use one or the other. If I use a filtername, I ensure the criteria I want is already within the query. If I use the filtercriteria, then I don't use the filtername and the code looks something like this as an example:
docmd.applyfilter , "fieldname=[forms]![formname]![fieldname]
Anyway, hope this helps or maybe someone else can expound on this or let us both know that I have absolutely no clue. Good luck!