Tipp 3.3 - Controls in Array

Wie kann ich einem Array die Namen der Controls im angegebenen Bericht übergeben?

Mit dieser Funktion können Sie einem Array die Namen der Steuerelemente im angegebenen Bericht übergeben. 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.

Beispiel:

Public Function A2XRptControlsToArray(psReport As String, _
                                      pasIn() As String) _
                                      As Integer
  '// =====================================================
  '// Methode   | Übergibt einem Array die Namen der
  '//           | Controls im angegebenen Bericht
  '// -----------------------------------------------------
  '// Parameter | psReport - Name des Berichts
  '//           | pasIn()  - Array zum Füllen der Namen
  '// -----------------------------------------------------
  '// Rückgabe  | Integer - Anzahl der Controls
  '// -----------------------------------------------------
  '// Erstellt  | Manuela Kulpa
  '//           | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
  '// Beispielaufruf:
  '// Dim iCount       As Integer
  '// Dim iCounter     As Integer
  '// Dim asControls() As String
  '//
  '// iCount = A2XRptControlsToArray("rptTest", _
  '//                                 asControls)
  '// Debug.Print "Report Controls:"
  '// For iCounter = 0 To iCount - 1
  '//   Debug.Print iCounter & ": " & _
  '//               asControls(iCounter)
  '// Next iCounter
  '// =====================================================
  Dim rptTmp As Report
  Dim iCount As Integer
  Dim iCounter As Integer
  Dim bNeedsClosing As Boolean
 
  On Error GoTo A2XRptControlsToArray_Error
 
  ' Wenn Bericht nicht geöffnet, öffne ihn
  ' im Entwurfs-Modus
  If SysCmd(acSysCmdGetObjectState, acReport, psReport) _
     = 0 Then
    DoCmd.OpenReport psReport, acDesign
    bNeedsClosing = True
  End If
 
  ' Objekt-Variable setzen und Anzahl
  ' der Controls ermitteln
  Set rptTmp = Reports(psReport)
  iCount = rptTmp.Count
 
  ReDim pasIn(0 To iCount - 1)
  For iCounter = 0 To iCount - 1
    pasIn(iCounter) = rptTmp(iCounter).Name
  Next iCounter
 
  If bNeedsClosing Then
    DoCmd.Close acReport, psReport
  End If
 
  A2XRptControlsToArray = iCount
 
A2XRptControlsToArray_Exit:
  On Error GoTo 0
  Exit Function
 
A2XRptControlsToArray_Error:
  Select Case Err.Number
  Case Else
    MsgBox "Fehler " & Err.Number & ": " & _
           Err.Description, vbCritical, _
           "modRpt.A2XRptControlsToArray"
  End Select
  Resume A2XRptControlsToArray_Exit
 
 
End Function