Wie Sie auf die Beschriftung eines Steuerelements im code
Oft ein label-Steuerelement gebunden ist, ein Textfeld oder andere ähnliche Steuern. Ich weiß, dass es eine Möglichkeit gibt den Zugriff auf die label-code durch, aber ich erinnere mich nicht, wie es zu tun.
Kann jemand helfen?
Vielleicht so etwas wie:
Me.txtName.Child!lblName.Value
Oder
Me.txtName.Parent!lblName.Value
Dass ich diese, wenn ich die Aufzählung durch die Steuerelemente auf einem Formular für die Validierung. Dann möchte ich das label-Steuerelement als Informationen in der Fehlermeldung, um dem Benutzer zu zeigen, wo der Fehler ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit der textbox können Sie versuchen,
wo die Kontrolle 0 ist die verknüpfte label
@Astander hat die richtige Antwort, aber Bedenken Sie, dass nicht alle Steuerelemente haben die gleiche Art von Kontrollen Sammlungen.
TextBoxes, ComboBoxes, ListBoxes, Checkboxen maximal 1 Element in Ihre controls-Auflistung (die beigefügten Etikett), aber wenn das label nicht angebracht, Sie gar nicht, dass so .Controls(0), wird ein Fehler ausgelöst.
Option Gruppe hat mehrere Steuerelemente, die Beschriftung und die option-Taste oder die Tasten in den Rahmen. Wenn Sie drop eine Optionsgruppe in einem Formular aus der Formular-Symbolleiste Werkzeuge, der Rahmen ist geschaffen, mit einem beigefügten Etikett, so wird es das control mit dem index 0. Aber wenn, zum Beispiel, löschen Sie die Standard-label, fügen Sie die option Tasten, und dann fügen Sie wieder ein label, es wird nicht mit dem index 0, aber die index .Controls.Graf - 1.
So, für die Beschriftung der Optionsfelder der Gruppe-Aufkleber, die Sie entweder wollen, vorsichtig zu sein, dass, wenn Sie löschen Sie die Standard-label, löschen Sie auch die Steuerelemente innerhalb des Rahmens, nachdem Sie die Beschriftung hinzufügen zurück. Wenn das nicht der Fall, müssen Sie die Namen der label und nennen es beim Namen, denn die Etiketten für die option/toggle-buttons sind Teil der option Gruppe der Controls-Auflistung (das hat mich überrascht-ich erwartete Sie werden nur in der Controls-Auflistung des option/Schaltfläche zum Umschalten, zu denen Sie befestigt waren).
Um dieses problem zu vermeiden, kann ich mir vorstellen, gewundenen code, wo Sie Durchlaufen die option Gruppe der Controls-Auflistung suchen für die Etiketten die option/toggle-buttons, und dann geloopt über die option Gruppe der Controls-Auflistung ein zweites mal, dieses mal auf der Suche nur auf den Etiketten. So etwas wie dieses:
Nun, diese Pausen wenn es keinen Aufkleber, so dass es wahrscheinlich mehr Sinn machen für Sie, um zurückzukehren, den label-Namen, anstatt die control Referenz:
Könnte dies wohl durch eine einzelne Schleife über die option Gruppe der Controls-Auflistung, aber es ist spät! Was es scheint ziemlich nah an Kugel-Beweis, nicht dass es jemand gibt, der eine Ratte in den Arsch, natürlich! 🙂
Wenn Ihr Zugang ich denke, es ist
Formen!YourFormName!YourField.Wert
Ist oder wenn Sie eine sub-form sein:
Formen!yourMainForm!YourSubForm!YourField.Wert
Hier ist etwas code, den ich geschrieben habe: umbenennen der Bezeichnungen im Zusammenhang mit Optionsfeldern. Ein label hat eine parent-Eigenschaft, dass Punkte auf die Kontrolle der Etiketten. Die Funktion ist ziemlich allgemein, während das Unterprogramm wird writtenn für Optionsfeldern. Dieser code sollte für die meisten nichts außer, dass, wenn das label nicht verbunden, ich habe keine recovery.
Public Function paNameControlLabel(FormName As String, ControlName As String) As String
Dim frm As Form
Dim ctl As Control
Dim ctlLabel Als Kontrolle
Dim ctlParent Als Kontrolle
End Function
Public Sub paNameOptionButtonLabels(FormName As String)
Dim frm As Form
Dim ctl As Control
End Sub
Wahrscheinlich zu spät, aber ich kämpfte mit diesem, und was gearbeitet wurde, um zu überprüfen, die Art von Kontrolle, um sicherzustellen, unterstützt Etiketten, und verwenden Sie dann
In das Direktfenster mithilfe eines text-index anstelle der magic-Nummer:
ctl.properties("LabelName")
gearbeitet.Zuerst sah ich für das label unter den Eigenschaften der textbox und schlug aus.
Dann sah ich zwischen den Steuerelementen des Formulars und fand es dort.
Hoffe, das hilft jemand!