Syntax for main/subforms
For these examples:
Mainform is the name of the top level form
Subform1 is the name of the subform CONTROL on mainform
Subform2 is the name of the subform CONTROL on the 1st subform.
If you are on |
||
Main form |
Sub 1 |
|
To refer to a form property, like RecordSource |
||
On Mainform |
Me.RecordSource |
Me.Parent.RecordSource |
On Sub 1 |
Me!Subform1.Form.RecordSource |
Me.RecordSource |
On Sub 2 |
Me!Subform1.Form!Subform2.Form. RecordSource |
Me!Subform2.Form.RecordSource |
To refer to a control |
||
On Mainform |
Me!ControlName |
Me.Parent!ControlName |
On Sub 1 |
Me!Subform1.Form!ControlName |
Me!ControlName |
On Sub 2 |
Me!Subform1.Form!Subform2.Form! ControlName |
Me!Subform2.Form!ControlName |
To refer to a control property, like Enabled |
||
On Mainform |
Me!ControlName.Enabled |
Me.Parent!ControlName.Enabled |
On Sub 1 |
Me!Subform1.Form!ControlName.Enabled |
Me!ControlName.Enabled |
On Sub 2 |
Me!Subform1.Form!Subform2.Form! ControlName.Enabled |
Me!Subform2.Form!ControlName.Enabled |
To refer to a subform control property, like SourceObject |
||
On Mainform |
N/A |
N/A |
On Sub 1 |
Me!Subform1.SourceObject |
N/A |
On Sub 2 |
Me!Subform1.Form!Subform2.SourceObject |
Me!Subform2.SourceObject |
If you are on |
||
Sub2 |
Not in these forms |
|
To refer to a form property, like RecordSource |
||
On Mainform |
Me.Parent.Parent.RecordSource |
Forms!Mainform.RecordSource |
On Sub 1 |
Me.Parent.RecordSource |
Forms!Mainform!Subform1.Form.RecordSource |
On Sub 2 |
Me.RecordSource |
Forms!Mainform!Subform1.Form!Subform2. Form.RecordSource |
To refer to a control |
||
On Mainform |
Me.Parent.Parent!ControlName |
Forms!Mainform!ControlName |
On Sub 1 |
Me.Parent!ControlName |
Forms!Mainform!Subform1.Form!ControlName |
On Sub 2 |
Me!ControlName |
Forms!Mainform!Subform1.Form!Subform2. Form!ControlName |
To refer to a control property, like Enabled |
||
On Mainform |
Me.Parent.Parent!ControlName.Enabled |
Forms!Mainform!ControlName.Enabled |
On Sub 1 |
Me.Parent!ControlName.Enabled |
Forms!Mainform!Subform1.Form!ControlName.Enabled |
On Sub 2 |
Me!ControlName.Enabled |
Forms!Mainform!Subform1.Form!Subform2. Form!ControlName.Enabled |
To refer to a subform control property, like SourceObject |
||
On Mainform |
N/A |
N/A |
On Sub 1 |
N/A |
Forms!Mainform!Subform1.SourceObject |
On Sub 2 |
N/A |
Forms!Mainform!Subform1.Form!Subform2. SourceObject |
Problema
Vuoi usare in VBA una variabile invece del nome assegnato ad un oggetto (ad es. il controllo di una maschera o il campo di un recordset).
Soluzione
Usa la sintassi con le parentesi:
controllo di una maschera: Forms("NomeMaschera")(VariabileStringa)
oppure
campo di un recordset:(Vs(VariabileStringa)