Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ACCESS Bericht Drucken

ACCESS Bericht Drucken
Markus
Hallo zusammen,
hätte da in Problem,
Ich habe in Access auf basis einer Abfrage ein Bericht erstellt (Datenbank = "MDDdatenbank") (Bericht = Deklerationsbericht)
Ich Möchte aber diesen Bericht, ohne diesen öffen zu müssen via VBA von EXCEL aus drucken.
Ist das möglich ?
Danke schoneinmal für eventuell Hilfe
Gruß Markus
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ACCESS Bericht Drucken
20.03.2011 16:43:08
Case
Hallo, ;-)
lege Dir zunächst in der Accessdatei ein Modul an und kopiere folgendes rein:
Option Compare Database
Option Explicit
Sub Print_Bericht()
DoCmd.OpenReport "Test"
End Sub
Dieser Code druckt den Bericht. Mein Bericht heißt Test - musst Du also anpassen.
Dann in Excel folgenden Code:
Option Explicit
' Pfad- und Dateiname anpassen
Const strFile As String = "C:\Temp\Testdatenbank.mdb"
Dim blnTMP As Boolean
Public Sub Test()
Dim objApp As Object
On Error GoTo Fin
Set objApp = OffApp("ACCESS", False)
If Not objApp Is Nothing Then
With objApp
If Dir(strFile)  "" Then
.OpenCurrentDatabase strFile
' "Print_Bericht" gegebenenfalls anpassen
.Run "Print_Bericht"
Else
MsgBox "Datenbank " & strFile & "nicht vorhanden!"
End If
End With
Else
MsgBox "Applikation nicht installiert!"
End If
Fin:
If Not objApp Is Nothing Then
If blnTMP = True Then
objApp.Quit
blnTMP = False
End If
End If
Set objApp = Nothing
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub
Private Function OffApp(ByVal strApp As String, _
Optional blnVisible As Boolean = True) As Object
Dim objApp As Object
On Error Resume Next
Set objApp = GetObject(, strApp & ".Application")
Select Case Err.Number
Case 429
Err.Clear
Set objApp = CreateObject(strApp & ".Application")
blnTMP = True
If blnVisible = True Then
On Error Resume Next
objApp.Visible = True
Err.Clear
End If
End Select
On Error GoTo 0
Set OffApp = objApp
Set objApp = Nothing
End Function
Servus
Case

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

ACCESS Bericht Drucken über Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Access Bericht ohne Öffnen der Datei direkt über Excel zu drucken, kannst Du die folgenden Schritte ausführen:

  1. Erstelle ein Modul in Access:

    • Öffne Deine Access-Datenbank (z.B. "MDDdatenbank").
    • Gehe zu "Entwicklertools" und wähle "Modul".
    • Füge den folgenden VBA-Code in das Modul ein:
    Option Compare Database
    Option Explicit
    Sub Print_Bericht()
       DoCmd.OpenReport "Deklerationsbericht"
    End Sub

    Stelle sicher, dass der Bericht den Namen "Deklerationsbericht" hat oder passe den Code entsprechend an.

  2. Füge den Code in Excel ein:

    • Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Füge ein neues Modul hinzu und kopiere den folgenden Code hinein:
    Option Explicit
    ' Pfad- und Dateiname anpassen
    Const strFile As String = "C:\Temp\MDDdatenbank.mdb"
    Dim blnTMP As Boolean
    
    Public Sub Test()
       Dim objApp As Object
       On Error GoTo Fin
       Set objApp = OffApp("ACCESS", False)
       If Not objApp Is Nothing Then
           With objApp
               If Dir(strFile) <> "" Then
                   .OpenCurrentDatabase strFile
                   .Run "Print_Bericht"
               Else
                   MsgBox "Datenbank " & strFile & " nicht vorhanden!"
               End If
           End With
       Else
           MsgBox "Applikation nicht installiert!"
       End If
    Fin:
       If Not objApp Is Nothing Then
           If blnTMP = True Then
               objApp.Quit
               blnTMP = False
           End If
       End If
       Set objApp = Nothing
       If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & " " & Err.Description
    End Sub
    
    Private Function OffApp(ByVal strApp As String, Optional blnVisible As Boolean = True) As Object
       Dim objApp As Object
       On Error Resume Next
       Set objApp = GetObject(, strApp & ".Application")
       Select Case Err.Number
           Case 429
               Err.Clear
               Set objApp = CreateObject(strApp & ".Application")
               blnTMP = True
               If blnVisible = True Then
                   On Error Resume Next
                   objApp.Visible = True
                   Err.Clear
               End If
       End Select
       On Error GoTo 0
       Set OffApp = objApp
       Set objApp = Nothing
    End Function
  3. Führe das Makro aus:

    • Kehre zu Excel zurück und führe das Makro Test aus. Der Bericht wird nun direkt aus Access gedruckt.

Häufige Fehler und Lösungen

  • Fehler: "Datenbank nicht vorhanden!"

    • Überprüfe den Pfad zur Access-Datenbank und stelle sicher, dass die Datei existiert.
  • Fehler: "Applikation nicht installiert!"

    • Stelle sicher, dass Microsoft Access auf Deinem Computer installiert ist.
  • VBA läuft nicht

    • Überprüfe, ob die Makros in Excel aktiviert sind.

Alternative Methoden

Falls die oben genannten Schritte nicht funktionieren, kannst Du auch erwägen:

  • Export des Berichts als PDF:

    • Du kannst den Bericht in Access zunächst als PDF exportieren und dann über Excel drucken.
  • Benutzung von Power Automate:

    • Wenn Du Zugriff auf Microsoft Power Automate hast, könntest Du einen Flow erstellen, der den Bericht druckt, ohne Excel oder Access manuell zu öffnen.

Praktische Beispiele

Hier sind einige praktische Beispiele, um einen Access Bericht zu drucken:

  • Wenn Du mehrere Berichte drucken möchtest, kannst Du eine Schleife in das Excel VBA einfügen, um durch eine Liste von Berichtsnamen zu iterieren.

  • Beispiel für einen einfachen Loop:

    Dim berichtNamen As Variant
    berichtNamen = Array("Bericht1", "Bericht2", "Bericht3")
    For Each bericht In berichtNamen
       .Run bericht
    Next bericht

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung in Deinem VBA-Code, um unerwartete Probleme zu vermeiden.

  • Performance optimieren: Stelle sicher, dass Du die Access-Datenbank nur einmal öffnest und sie erst am Ende schließt, um Leistungseinbußen zu vermeiden.

  • Dokumentation: Halte Deinen Code gut dokumentiert, damit Du und andere Benutzer später leichter darauf zugreifen können.


FAQ: Häufige Fragen

1. Kann ich auch andere Berichte drucken? Ja, Du kannst jeden Bericht drucken, indem Du den Namen im DoCmd.OpenReport-Befehl anpasst.

2. Funktioniert das auch mit Access 2016? Ja, diese Anleitung sollte mit Access 2010 bis 2019 in der Regel gut funktionieren.

3. Was mache ich, wenn ich keinen Zugriff auf das VBA-Modul habe? In diesem Fall wende Dich an den Administrator Deiner Datenbank oder stelle sicher, dass Du die richtigen Berechtigungen hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige