Tipp 3.8 - Daten vorhanden

Wie kann ich beim Öffnen eines Berichtes überprüfen, ob dieser Daten enthält?

Mit dieser Funktion können Sie beim Öffnen eines Berichtes überprüfen, ob dieser Daten enthält. 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 A2XRptHasData(prpt As Report) As Boolean
  '// =====================================================
  '// Methode   | Überprüft, ob ein Bericht Daten enthält
  '// -----------------------------------------------------
  '// Parameter | prpt      - Berichtsobjekt
  '// -----------------------------------------------------
  '// Rückgabe  | Boolean - True/False
  '// -----------------------------------------------------
  '// Erstellt  | Manuela Kulpa
  '//           | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
  '// Beispielaufruf: Im Open-Ereignis des Berichts
  '// Private Sub Report_Open(Cancel As Integer)
  '     If A2XRptHasData(Me) = False Then
  '       MsgBox "Keine Daten vorhanden", vbInformation
  '       Cancel = True
  '     End If
  '   End Sub
  '// =====================================================
 
  ' Verweis auf DAO 3.X Object Library muss gesetzt sein!
  Dim dbs As DAO.Database
  Dim rst As DAO.Recordset
 
  On Error GoTo A2XRptHasData_Error
 
  Set dbs = CurrentDb()
 
  ' Berichtsdaten an Recordset übergeben
  Set rst = dbs.OpenRecordset(prpt.RecordSource)
 
  ' Wenn mehr als 1 DS , dann sind Daten vorhanden
  A2XRptHasData = (rst.RecordCount > 0)
 
A2XRptHasData_Exit:
  On Error GoTo 0
  If Not rst Is Nothing Then rst.Close: Set rst = Nothing
  If Not dbs Is Nothing Then dbs.Close: Set dbs = Nothing
  Exit Function
 
A2XRptHasData_Error:
  Select Case Err.Number
    Case Else
      MsgBox "Fehler " & Err.Number & ": " & _
             Err.Description, vbCritical, _
             "modRpt.A2XRptHasData"
  End Select
  Resume A2XRptHasData_Exit
 
End Function