The MsgBox thing is just a preference of mine.
I guess the real test is not what you can do in the form, but what the properties of the form are when it is opened using the acFormReadOnly property.
DoCmd.OpenForm "form1", acNormal, , , acFormReadOnly
Even if the Form's default DataEntry is set to Yes (True),
the form will be opened with the above command and the DataEntry property will be set to No (False), presumably because You cannot do Data Entry on a Form that is Read Only
Unless I'm missing something, that should do the trick. I'm Your Huckleberry!