'/** ' * Gibt den Pfad eines Formularcontrols zurück [ParentControl2]![ParentControl1]![ActualControl] ' * Dies ist vor allem bei verschachtelten Formularen interessant ' * @param Das Formularelement ' * @return String ' */ Public Function getControlPath(ByVal ctrl As Control) As String Const C_DELEMITER = "!" Const C_FORMAT = "[%s]" Dim path() As String Dim sortetPath() As String Dim lastIndex, i As Integer ReDim path(0) path(0) = ctrl.Name On Error GoTo exit_loop 'Solange die Parents suchen bis keine mehr da sind Do While IsObject(ctrl.parent) ReDim Preserve path(UBound(path) + 1) path(UBound(path)) = ctrl.parent.Name Set ctrl = ctrl.parent Loop exit_loop: On Error GoTo 0 'Reihenfolge umdrehen damit der Master als erstes kommt lastIndex = UBound(path) ReDim sortetPath(UBound(path)) For i = 0 To lastIndex 'To 0 Step -1 'Dein Eintrag formatieren und am entsprechenden Ort im neuen Array einfügen sortetPath(lastIndex - i) = Replace(C_FORMAT, "%s", path(i)) Next i 'und alles zu einem String zusammensetzen getControlPath = Join(sortetPath, C_DELEMITER) End Function