none
Von Kontrollfeld dessen Label herausfinden

    Frage

  • Hallo zusammen

    Ich möchte von einem Kontrollfeld (z.B. Textfeld) das dazugehörige, mit dem Kontrollfeld verbundene Label herausfinden (per VBA).
    Wie kann ich das machen?

    Danke für Eure Antworten.


    Danke und Gruss Thomas
    Mittwoch, 31. August 2011 14:38

Antworten

  • Stefan Hoffmann [MVP] wrote:

    Wenn es korrekt zugeordnet ist, dann ist es das erste Control in der
    Controls()-Collection deiner TextBox:

    Zufall? Ich würde mich nicht darauf verlassen und den dokumentierten Weg gehen. Das wäre die Parent Eigenschaft des Labels ermitteln, um die zugehörige Textbox zu bekommen. Da allerdings die Fragestellung umgekehrt ist, benötigt man einen Loop (gesetzt der FAll, der Name der Textbox steht in der Variable strNameDerTextbox:

    Public Function getNameOfLabel(strNameDerTextBox) AS Variant
     Dim ctl As Control
     getNameOfLabel = Null
     For Each ctl In Me.Controls
       If ctl.ControlType = acLabel Then
         If ctl.Parent.Name = strNameDerTextbox Then
           getNameOfLabel = ctl.Name
           Exit For
         End If
       End If
     Next
    End Function

    Natürlich könnte die Function auch gleich das Label selber als Control zurückgeben, statt dessen Namen.

    Gruss
    Henry

    HTH
    Henry

    • Als Antwort markiert Alphawolfi Donnerstag, 1. September 2011 06:13
    Donnerstag, 1. September 2011 03:46

Alle Antworten

  • Wenn es korrekt zugeordnet ist, dann ist es das erste Control in der Controls()-Collection deiner TextBox:

    Dim ct As Access.Control
    
    Set ct = myTextBox.Controls(0)
    If Not ct Is Nothing Then
      If TypeOf ct Is Access.Label Then
        MsgBox "Label für TextFeld: " & ct.Name
      End If
    End If
    Mittwoch, 31. August 2011 14:55
    Moderator
  • Stefan Hoffmann [MVP] wrote:

    Wenn es korrekt zugeordnet ist, dann ist es das erste Control in der
    Controls()-Collection deiner TextBox:

    Zufall? Ich würde mich nicht darauf verlassen und den dokumentierten Weg gehen. Das wäre die Parent Eigenschaft des Labels ermitteln, um die zugehörige Textbox zu bekommen. Da allerdings die Fragestellung umgekehrt ist, benötigt man einen Loop (gesetzt der FAll, der Name der Textbox steht in der Variable strNameDerTextbox:

    Public Function getNameOfLabel(strNameDerTextBox) AS Variant
     Dim ctl As Control
     getNameOfLabel = Null
     For Each ctl In Me.Controls
       If ctl.ControlType = acLabel Then
         If ctl.Parent.Name = strNameDerTextbox Then
           getNameOfLabel = ctl.Name
           Exit For
         End If
       End If
     Next
    End Function

    Natürlich könnte die Function auch gleich das Label selber als Control zurückgeben, statt dessen Namen.

    Gruss
    Henry

    HTH
    Henry

    • Als Antwort markiert Alphawolfi Donnerstag, 1. September 2011 06:13
    Donnerstag, 1. September 2011 03:46
  • Hallo zusammen

    Danke für Eure Antworten. Das hilft mir sicher weiter.


    Danke und Gruss Thomas
    Donnerstag, 1. September 2011 06:13