Referencias entre Forms y SubForms

Resumen de como referenciar a formularios y controles en vba. Mainform es el formulario principal, Subform1 es el nombre del Control subformulario en el formulario principal y Subform2 es el nombre del Control en el Subform1.

Estos ejemplos sirven igualmente para Informes cambiando «Form» por «Report» cuando sea necesario.

La información original fue publicada por Keri Hardwick en inglés en la web The Access Web

Propiedad de Formulario (ej. RecordSource)

Desde Formulario Principal
De Mainform: Me.RecordSource
De Sub 1: Me!Subform1.Form.RecordSource
De Sub2: Me!Subform1.Form!Subform2.Form.RecordSource
Desde Subform1
De Mainform: Me.Parent.RecordSource
De Sub 1: Me.RecordSource
De Sub2: Me!Subform2.Form.RecordSource
Otro (ej. módulo estándar)
De Mainform: Forms!Mainform.RecordSource
De Sub 1: Forms!Mainform!Subform1.Form.RecordSource
De Sub2: Forms!Mainform!Subform1.Form!Subform2.Form.RecordSource
Desde Subform2
De Mainform: Me.Parent.Parent.RecordSource
De Sub 1: Me.Parent.RecordSource
De Sub2: Me.RecordSource

Referencia a un Control

Desde Formulario Principal
De Mainform: Me!ControlName
De Sub1: Me!Subform1.Form!ControlName
De Sub2: Me!Subform1.Form!Subform2.Form!ControlName
Desde Subform1
De Mainform: Me.Parent!ControlName
De Sub1: Me!ControlName
De Sub2: Me!Subform2.Form!ControlName
Otro (ej. módulo estándar)
De Mainform: Forms!Mainform!ControlName
De Sub1: Forms!Mainform!Subform1.Form!ControlName
De Sub2: Forms!Mainform!Subform1.Form!Subform2.Form!ControlName
Desde Subform2
De Mainform: Me.Parent.Parent!ControlName
De Sub 1: Me.Parent!ControlName
De Sub2: Me!ControlName

Referencia a una Propiedad de un Control (ej. Enabled)

Desde Formulario Principal
De Mainform: Me!ControlName.Enabled
De Sub 1: Me!Subform1.Form!ControlName.Enabled
De Sub2: Me!Subform1.Form!Subform2.Form!ControlName.Enabled
Desde Subform1
De Mainform: Me.Parent!ControlName.Enabled
De Sub1: Me!ControlName.Enabled
De Sub2: Me!Subform2.Form!ControlName.Enabled
Otro (ej. módulo estándar)
De Mainform: Forms!Mainform!ControlName.Enabled
De Sub1: Forms!Mainform!Subform1.Form!ControlName.Enabled
De Sub2: Forms!Mainform!Subform1.Form!Subform2.Form!ControlName.Enabled
Desde Subform2
De Mainform: Me.Parent.Parent!ControlName.Enabled
De Sub 1: Me.Parent!ControlName.Enabled
De Sub2: Me!ControlName.Enabled

Referencia a una Propiedad del Control Subformulario (ej. SourceObject)

Desde Formulario Principal
De Mainform:No Disponible
De Sub1: Me!Subform1.SourceObject
De Sub2: Me!Subform1.Form!Subform2.SourceObject
Desde Subform1
De Mainform: No Disponible
De Sub1: No Disponible
De Sub2: Me!Subform2.SourceObject
Otro (ej. módulo estándar)
De Mainform: No Disonible
De Sub 1: Forms!Mainform!Subform1.SourceObject
De Sub2: Forms!Mainform!Subform1.Form!Subform2.SourceObject
Desde Subform2
De Mainform: No Disponible
De Sub 1: No Disponible
De Sub2: No Disponible