I guess that makes sense, but I don't remember ever running into the problem. It makes sense because until you're actually IN the recordset, you can't move to a particular record in that recordset.
It worked for me in the OnOpen. But then, I used code and you used a macro. Try using the code from my response above instead of the macro and see if it works. It would be good to start using code instead of macros, anyway. Most, if not all, commands that are available in Macros are also available in code. Check out help "DoCmd" and "RunCommand". One way to see all the macro-like actions available in DoCmd and RunCommand is to go into code, type one of those commands and then hit the space bar. The entire list will appear and you can browse it. Then, if you want to see some help (especially with DoCmd), you can just put your cursor in the action following the DoCmd and press F1.