I do it this way. I place all sorts of information in the Tag property regarding the controls corresponding tablename, fieldname, whether the field is required to save the record, etc.... Place in the Tag something like this
ctlText.Tag = "vbNullString;True;False"
This tag, for instance, would tell me that:
it's default setting = ""
it's visible property = True
it's enabled property = False
Now, onto the routine
Private Sub FormatForm()
Dim ctl as Control
dim arrTemp as variant
for each ctl in me.controls
if Typeof ctl is Textbox then
arrtemp = split(ctl.tag, ";"

'Creating an array
ctl.value = arrtemp(0)
ctl.Visible = arrtemp(1)
ctl.Enabled = arrtemp(2)
end if
next
end sub
That routine works like a charm for me
You can put this in a standard module and pass the form into the routine so that you do not have to recreate it again and again.
Hope that helps.
Bob