You know, Minty is an Access expert, Galaxiom is a freaking master with this application, Doc was a goddamn Microsoft MVP (as in the guy who TAUGHT the masters), and ridders not only runs a business developing Access applications for schools and other businesses (and is pretty much a master himself), but spends most of his evenings here helping people just because he can. He's also one of the most even-tempered, NON-condescending people I've seen post here.
You are, quite honestly, completely out of line, and doing nothing but killing your chances of getting effective help either here or on any other Access specific site, since most of the volunteers here are the main volunteers on the other sites, too.
As a rule, when those four tell you somethihng either cannot be done or is otherwise just a bad idea, then you should listen to them. In fact, they are trying to HELP you by teaching you to make your app faster, more responsive, and way, way more stable. You should, perhaps, accept that the approach you're taking is not going to be feasible and try their suggestions.
As to your questions on this thread (assuming you've read past the above):
Any recordset, whether built into the form or created and attached during the Form_Open event, is closed when that form is closed unless you have given it global scope. It's possible that assigning it to a static variable will keep it open as well, but I've never felt the need to do something that silly.
Where I work, I have seen precisely one application that does what you're trying to do. It relies on a 5000+ line module that creates, updates, and maintains asynchronous ADO connections to DB2 databases, and it was poorly written, completely undocumented, and damned near beyond *MY* ability to figure it out (and while I'm not in the same weight class as the other four posters, I'm no slouch). It created links as database objects and held them in memory when the database was opened, and just generally made the application far less efficient, since it was mostly just doing things Access already does. And as I work with tables with hundreds of fields and billions of records (don't look at me like that Galaxiom, I didn't build them), it just KILLED performance. You should NEVER use that kind of approach if there's any possible way to avoid it.
Why precisely aren't you allowed to create links to the server in your app? You claim you don't have admin rights, but you don't need them just to create a link. If your concern is maintaining a DSN on each machine, we can teach you both how to set up DSN-less connections, and methods to have the application set them up itself so you don't have to do a thing.
Once you've done that, you can just put the necessary sql into each form's RecordSource property (or use saved queries), and let Access handle the opening and closing of each recordset. (Alternately, we can show you better ways to attach a recordset to a form when it opens - I have a few forms with no permanent recordset assigned and instead assign one as part of Form_Open, but it's due to very specific business requirements.)
Basically, stop being so defensive and work with us. Just because you're being told that what you want isn't feasible, it doesn't follow that a better solution can't be found.