Since the author has offered a solution, I think more proper resolution will be PAQ/refund.
However, I also have a suggestion about how this could be implemented, possibly easier.
For those subforms that are bound to the tables where permission may or may not exist, specify their recordsource as empty.
Then, when the time comes to show them, check (in code) if the permission does exist, and if not, hide the subform and show a message instead. Code like this should work:
on error resume next
set o = currentproject.connection
o.execute "select top 1 1 from mytable"
I_Have_No_Permission = False
I_Have_No_Permission = (o.Errors.Count = 1 And o.Errors(0).SQLState = 42000)
subform1.visible = Not I_Have_No_Permission
subform1.form.recordsource = iif(if subform1.visible,"select * from mytable","")
label1.visible = not subform1.visible
label1.caption = "You don't have permission" ' superimposed on the subform