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