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