Wie eine Schleife über alle Steuerelemente in einem Formular, einschließlich der Steuerelemente in einem Unterformular - Access-2007
Wie der Titel meiner Frage vorschlagen, wie ist es möglich eine Schleife über alle Steuerelemente in einem Formular, einschließlich der Unterformulare.
Zum Beispiel verwende ich die unten sub-routine zum setzen der Hintergrundfarbe des controls mit dem tag *
Public Sub colCtrlReq(frm As Form)
' Sets background color for required field -> Tag = *
Dim setColour As String
setColour = RGB(255, 244, 164)
Dim ctl As Control
For Each ctl In frm.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acListBox Then
If InStr(1, ctl.Tag, "*") <> 0 Then
ctl.BackColor = setColour
End If
End If
Next ctl
Set ctl = Nothing
End Sub
Wie ändern würde, diese zu fangen, die Steuerelemente in einem Unterformular?
Vielen Dank im Voraus für jede Hilfe oder Hinweise.
Cheers
Noel
- Andere haben beantwortet unsere Frage, aber Sie sollten wirklich dies ändern: "For Each ctl In frm" -- "Für Jeden ctl In frm.Steuerelemente". Die Standard-Auflistung eines Formulars ist eigentlich eine union der Steuerelemente und Felder-Sammlung, also was du geschrieben hast, könnte zu unvorhergesehenen Ergebnissen führen.
- Cheers David vielen Dank für die Ratschläge, korrigiert haben den obigen code.
- Re Kommentar "For Each ctl In frm" -- konnte ich nicht reproduzieren dieses problem mit Access 2010.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Rekursion
frm(ctl.Name).Form
zuctl.Form
(überprüft in Access 2016).Zugriff auf die controls-Auflistung des Unterformular-Steuerelement auf die Form-Eigenschaft.
Hüten, den Namen des Unterformular-Steuerelements kann nicht das gleiche wie der name der gespeicherten Formular-Objekt.
Wenn Ihr Unterformular Kontrolle benannt ist SubformControlName, von hier aus starten:
Update: Aus deinem Kommentar, hier ist was ich glaube, was du bist suchen für.
Wenn Sie nicht wissen, den Namen(s) des Unterformular-Steuerelements(en) im Voraus, können Sie ermitteln, welche Ihrer Formular-Steuerelemente sind Unterformular-Steuerelemente zur Laufzeit.