I'm not sure what you are trying to accomplish so I'm just going to tell you what I do and why.
I strongly dislike having multiple forms open so when I open one form from another, I hide the calling form and then open the next form as a Dialog to ensure that focus stays there until I close the second form and using the OpenArgs argument, I pass in the name of the calling form -- Me.Name. That means that when the called form closes, it always opens the form passed in the OpenArgs. Keep in mind that if you are opening a form from a subform, you want control to return to the parent form, NOT the subform so you would use Me.Parent.Name.
Most of the time formB is only ever opened by formA so when formB closes, control should return to formA but sometimes, the same form needs to be opened from different forms and I want control to return appropriately. The described method gives me that flexibility. I get to have only one form open, most of the time and each form when it closes, always returns to the form that opened it. Obviously, you have a different close method for the login form. I also use this technique to allow me to keep the login form open but hidden throughout a session. That way, I can keep various user data available without having to use tempVars or globals. I just refer to controls on the hidden login form. And finally, since the login form is always the first to stay open and it remains open it does two things:
1. keeps a permanent link to the BE to reduce the close/open cycle
2. Gives me a place to do shut down processing like make backups, etc.
I also never use Screen.Active... to refer to the current form or control. There are strange errors in situations where what you think is active isn't really active. See if you can make do with Me.Name instead, if you want to pass a name or just use Me if you want to pass the form object itself.