Tipp 2.4 - Controls de- bzw. aktivieren

Wie kann ich alle Controls eines Formulares aktivieren bzw. deaktivieren?

Mit dieser Funktion können Sie alle Steuerelemente eines Formulares aktivieren bzw. deaktivieren. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

ab Access 2000Hinweis: Durch spezielle Anweisungen können Sie diese Funktion erst ab Access 2000 einsetzen.

Beispiel:

Option Explicit
 
Public Enum eFrmSection
  fsFrmDetail = 0
  fsFrmHeader = 1
  fsFrmFooter = 2
  fsPageHeader = 3
  fsPageFooter = 4
End Enum
 
Public Sub A2XCtlEnableDisable( _
                               psForm As String, _
                               peSection As eFrmSection, _
                               pbEnable As Boolean)
  '// =====================================================
  '// Methode   | Aktiviert bzw. deaktiviert alle Controls
  '//           | eines Formulares
  '// -----------------------------------------------------
  '// Parameter | psForm    - Name des Formulars
  '//           | peSection - Bereich des Formulars
  '//           |             Das Enum eFrmSection sollte
  '//           |             vorab auf Modulebene
  '//           |             deklariert sein!
  '//           | pbEnable  - True = aktivieren
  '//           |             False = deaktivieren
  '// -----------------------------------------------------
  '// Erstellt  | Manuela Kulpa
  '//           | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
  '// Beispielaufruf:
  '// Private Sub Form_Open(Cancel As Integer)
  '//
  '//   Call A2XCtlEnableDisable(CStr(Me.Name), _
  '//                            fsFrmDetail, _
  '//                            False)
  '// End Sub
  '// =====================================================
 
  On Error GoTo HandleErr
  Dim frm As Form
  Dim ctl As Control
 
  Set frm = Forms(psForm)
 
  For Each ctl In frm.Controls
    If ctl.Section = peSection Then
      On Error Resume Next
      ctl.Enabled = pbEnable
      On Error GoTo HandleErr
    End If
  Next ctl
 
HandleExit:
  Exit Sub
 
HandleErr:
  Select Case Err.Number
    Case Else
      MsgBox "Fehler " & Err.Number & ": " & _
             Err.Description, vbCritical, _
             "basFrm.A2XCtlEnableDisable"
  End Select
  Resume HandleExit
End Sub