normally, you have a permanent form name for the recordset.
frmClients, show client recordset
frmCustomers ,show customers,
BUT if like the above , the form has the same datafields ,you can swap recordsets
The long version for referring to a form's recordset is:
Forms.Item(FormName).Recordset
You can replace FormName with either a string inside quotes or with a variable.
If the form isn't open you'll receive an error.
Basically, the ! in Forms!FormName.Recordset tells Access to pull the default property for whatever it follows. With the Forms collection, that's Item. The rest just tells it that the Item is named FormName and to access the Recordset property.
Actually, I find it easier to test via CurrentProject.AllForms("FormName").IsLoaded. It returns TRUE of the form is open (in ANY view) and FALSE otherwise.