Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Aus Excel heraus Bericht in Access drucken?
Kasimir
Hallo Leute!
Ich hätte da mal eine Frage. Ich fülle aus Excel heraus über VBA eine Access-Datenbank. In dieser Datenbank befinden sich diverse Abfragen und Berichte. Besteht die Möglichkeit, dass ich aus Excel heraus einen bestimmten Bericht in Access ausdrucken kann? Was ich meine ist, an Access den Druckbefehl für den entsprechenden Bericht übergeben und der Bericht, der sich in Access befindet, wird dann ausgedruckt. Geht das irgendwie?
Danke Euch für Eure Unterstützung,
Kasimir
AW: Aus Excel heraus Bericht in Access drucken?
17.10.2011 15:35:25
Yal
Hallo Kasimir,
im ersten Schritt muss Du die Access-Anwendug in Excel anbinden. Dafür nützt Du einen Access.Application-Objekt.
Es läuft ungefähr so, hier am Beipiel oder als Test "alle Tabellen auflisten"

Sub Test()
'unter Verwendung von Verweis auf
'Microsoft Access 11.0 Object Library
Dim accAPP As Access.Application
Dim T
Set accAPP = New Access.Application
accAPP.OpenCurrentDatabase "C:\Test.mdb"
For Each T In accAPP.CurrentDb.TableDefs
Debug.Print T.Name
Next T
accAPP.CloseCurrentDatabase
End Sub
dann den "for-Each .. next" block durch folgendes bzw. korrigiert auf deinem Report ersetzen
accAPP.Reports("MeinReport").Print
Ich habe die Auflistung von Tabellen getestet, den Rest nicht.
Viel Erfolg
Yal
Anzeige
AW: Aus Excel heraus Bericht in Access drucken?
17.10.2011 17:41:06
Kasimir
Hallo Ihr beiden!
Danke Euch für die Hilfe und sorry, dass ich erst jetzt reagiere, aber ich war den ganzen Tag beschäftigt und kann mich erst jetzt wieder der Sache widmen.
Ich habe mich erst einmal für den Vorschlag von @Case entschieden. Der Funktioniert auch. Allerdings ergeben sich nun noch zwei Dinge, die ich vorher vergessen habe.
1. Die Datenbank ist mit einem Passwort gesichert. Wo muss ich nun das Passwort eintragen, damit die Datenbank geöffnet wird, ohne dass ich das Passwort eingeben muss?
2. Für den Bericht muss ich angeben von welcher ID bis zu welcher ID ich Daten in dem Bericht haben möchte. Im Moment geht jeweils nacheinander ein Dialogfenster auf, in dem ich diese Zahlen, also von und bis, eintragen muss. Meine Frage nun: Kann ich diese beiden Zahlen auch noch über den VBA-Code aus Excel mit übergeben?
Hier noch die beiden Dialogfenster zur Eingabe der ID-Nummern
Userbild
Userbild
Ich hoffe, Ihr habt dafür auch noch einen Lösungsweg? Nochmal danke und Gruß,
Kasimir
Anzeige
AW: Aus Excel heraus Bericht in Access drucken?
18.10.2011 14:20:08
Case
Hallo, :-)
Zu 1:
ConnectionStrings...
Da bekommst Du jeden Verbindungsstring - auch mit Passwort.
Zu 2:
Lade einfach mal eine gezippte Beispieldatenbank mit Bericht (einfach nur mit ein paar Beispieldaten) hier hoch, dann muss man das nicht nachbauen.
Servus
Case

AW: Aus Excel heraus Bericht in Access drucken?
18.10.2011 14:51:53
Kasimir
Hallo Case,
danke Dir für Deine Hilfe. Das mit dem Passwort hatte ich mir gestern bereits ergoogelt. Das funktioniert.
Hier erst mal der Link zu meiner Beispieldatenbank: https://www.herber.de/bbs/user/77069.zip
Zum Übergeben von Parametern habe ich gestern nur etwas für Abfragen, nicht aber für Berichte gefunden. Ich schreibe mal nachfolgend den VBA-Code für Parameterübergabe bei einer Abfrage hin, eventuell hilft der bei der Lösungssuche ja weiter.

Sub ParamAbfrage()
Dim Datenbank As Database, Datensaetze As Recordset
Dim von, bis
von = 1
bis = 10
Set Datenbank = DBEngine.Workspaces(0).OpenDatabase("H:\DB\Lager.mdb")
Datenbank.QueryDefs("Lagereingang Etikett").Parameters("von") = von
Datenbank.QueryDefs("Lagereingang Etikett").Parameters("bis") = bis
Set Datensaetze = Datenbank.QueryDefs("Lagereingang Etikett").OpenRecordset
Sheets(1).[a1].CurrentRegion.Clear
Sheets(1).[a1].CopyFromRecordset Datensaetze
Worksheets(1).Activate
End Sub
Gruß,
Kasimir
Anzeige
AW: Aus Excel heraus Bericht in Access drucken?
19.10.2011 11:55:06
Case
Hallo, :-)
Code in der Accessdatei:

Option Compare Database
Option Explicit
Sub Print_Bericht_Lagereingang(ByVal intStart As Integer, ByVal intEnde As Integer)
DoCmd.OpenReport "Etiketten Lagereingang", , , _
"[ID]>=" & intStart & _
" And [ID]
Code in der Exceldatei:

Option Explicit
' Pfad- und Dateiname anpassen
Const strFile As String = "C:\Temp\Lager_Dummy.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_Lagereingang", 1, 20
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
Wie Du die IDs übergibst ".Run "Print_Bericht_Lagereingang", 1, 20", also die 1 und die 20 bleibt Dir überlassen - entweder mit Range aus zwei Zellen oder Inputbox, oder....
Servus
Case

Anzeige
AW: Aus Excel heraus Bericht in Access drucken?
19.10.2011 12:03:44
Case
Hallo, :-)
du musst natürlich noch in der Entwurfsansicht des Berichtes den Bericht von der Abfrage trennen und mit der entsprechenden Tabelle verbinden.
Servus
Case

AW: Aus Excel heraus Bericht in Access drucken?
19.10.2011 15:05:11
Kasimir
Hallo Case!
Danke Dir für Deine Antwort. Sorry, aber ich bin nicht so fit in Access. Was meinst Du mit
du musst natürlich noch in der Entwurfsansicht des Berichtes den Bericht von der Abfrage trennen und mit der entsprechenden Tabelle verbinden?
Wie stelle ich das an? Könntest Du mir das eventuell kurz beschreiben? Danke Dir und Gruß,
Kasimir
Anzeige
AW: Aus Excel heraus Bericht in Access drucken?
20.10.2011 06:39:36
Case
Hallo, :-)
na ja, Du gehst in die Entwurfsansicht des Berichtes. In den Eigenschaften steht bei Datensatzquelle noch deine Abfrage drin. Die raus und die Tabelle "Lagereingang" rein - darauf bezieht sich ja auch die Abfrage.
Hier noch deine Beispieldatei zurück.
Servus
Case

AW: Aus Excel heraus Bericht in Access drucken?
20.10.2011 06:48:52
Kasimir
Hallo Case!
Aaaah, jetzt habe auch ich es verstanden. Ich möchte mich ganz herzlich für Deine Mühe und die Hilfe bedanken.
Ich wünsche Dir noch eine angenehme Restarbeitswoche,
Kasimir
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige