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.
InformationsquelleAutor noelmcg | 2010-07-27
Schreibe einen Kommentar