2017-10-29 2 views
0

Ich habe ein Formular mit einer Schaltfläche, die ein anderes Formular im Dialogmodus öffnet. Gibt es eine Dialogformular-Eigenschaft, die Informationen über das Formular enthält, das sie geöffnet hat? So etwas wie ich.Parrent in der Form? Der einzige Weg, ich weiß, dass zu erreichen, ist OpenArgs zu verwenden, aber schon etwas strenge ...Siehe Formular "Eltern" aus dem Dialogfeld

Vielen Dank für alle Anregungen

Smok.

+1

_OpenArgs_ ist ziemlich flexibel. Sie können entweder den Formularnamen oder den Formularindex der Forms-Auflistung übergeben. – Gustav

+0

Keine Eigenschaft. Optionen sind OpenArgs, globale Variable, TempVars, Wert des Textfelds in der Dialogform festlegen. – June7

Antwort

1

Solange Sie nicht mehrere Varianten des gleichen Formulars öffnen, ist die Forms Sammlung der übliche Weg, um es zu tun, wie Gustav sagte.

Sie das Formular Objekt wie folgt zugreifen können:

auf Variablen

Forms!ParentformName.Form

Es gibt viele andere Möglichkeiten zu finden, bemerkte June7 die gebräuchlichsten. Ich ziehe es eine globale Variable im Unterformular Objekt

Auf der subfrom:

Public Parentform As Form 

Auf der Hauptform:

Private Sub OpenForm 
    DoCmd.OpenForm "myForm" 
    Forms!myForm.Parentform = Me.Form 
End Sub 

Oder ein Dialogformular zu öffnen, die auf dem Haupt-abhängig sind form:

Private dialogForm As Form 
Private Sub OpenForm 
    Set dialogForm = New Form_myForm 
    dialogForm.Parentform = Me.Form 
    dialogForm.SetFocus 
End Sub 

Beachten Sie, dass die letzte appr oach hat mehrere Vorteile, wie zum Beispiel die Unterstützung mehrerer Instanzen des Dialogformulars und die Möglichkeit, mehrere Dinge aus dem Unterformular zu machen (besonders wenn Sie die Private dialogForm As Form zu Private WithEvents dialogForm As Form ändern, mit der Sie feststellen können, wann das Dialogfeld geschlossen wird Dialogfeld, behandeln Sie sie auf dem Hauptformular und mehr. Es erfordert, dass die DialogForm ein Formularmodul hat.)

+0

Vielen Dank für die ausführliche Erläuterung des Themas. Noch eine Frage, ist es möglich, die Form als Dialog zu öffnen, indem der letzte Ansatz (mit dem Schlüsselwort "new") verwendet wird? – Smok

+1

@Smok nicht so weit ich weiß, aber Sie können nur die 'PopUp' -Eigenschaft auf' True' setzen, um es immer so zu öffnen. Es kann jedoch beim Öffnen nicht geändert werden, da es nur gelesen wird, es sei denn, das Formular befindet sich in der Entwurfsansicht. –

Verwandte Themen