Ich versuche schon länger ein Etikett im .rpt Format aus Access VBA heraus ausdrucken zu lassen.
An sich funktioniert auch der Druck, das Problem ist nur, dass sich der Report nicht die aktuellen Daten zieht, sondern die zuletzt gespeicherten Werte anzeigt.
Im Crystal Reports Viewer gibt es eine Funktion "Regenerieren" mit der die Daten neu aus der Datenbank gezogen werden.
Irgendwie müsste man die Regeneration doch auch mit Access auslösen können, ich konnte dazu aber absolut nirgends was passendes finden.
Hier der Code zum drucken des Etiketts:
Private Sub CMD_Print_Click()
Dim Printer1 As String
Dim Printer2 As String
Printer1 = "\\PEGGY\W144_SchlachtETI_1"
Printer2 = "\\PEGGY\W144_SchlachtETI_2"
Select Case (Druckerauswahl)
Case 0:
MsgBox "Keine Ausgabe!", vbOKOnly + vbInformation
Exit Sub
Case 1:
Shell "rundll32 printui.dll,PrintUIEntry /y /n " & Printer1
SetDefaultPrinter (Printer1)
If GetDefaultPrinter() <> Printer1 Then
MsgBox "Drucker " & Printer1 & " nicht installiert.", vbCritical + vbOKOnly, "Abbruch - Drucker ungültig"
Exit Sub
End If
Case 2:
Shell "rundll32 printui.dll,PrintUIEntry /y /n " & Printer2
SetDefaultPrinter (Printer2)
If GetDefaultPrinter() <> Printer2 Then
MsgBox "Drucker " & Printer2 & " nicht installiert.", vbCritical + vbOKOnly, "Abbruch - Drucker ungültig"
Exit Sub
End If
End Select
MsgBox "Die Ausgabe erfolgt auf " & GetDefaultPrinter() & ".", vbInformation + vbOKOnly, "Ausgabe"
'Prozedur zum Ausdruck des CrystalReports
Dim CR As New CRAXDRT.Application
Dim rep As CRAXDRT.Report
Set rep = CR.OpenReport("\\Poldi\Office\Access\VK_Etiketten\Schlachteti_KA_DruckWH.rpt")
rep.ReadRecords
rep.PrintOut promptUser:=False, numberOfCopy:=1
Dim strDateiname As String
strDateiname = "O:\Access\VK_Etiketten\Schlachteti_KA_DruckWH.rpt"
Shell "c:\windows\explorer.exe /e," & strDateiname, vbNormalFocus
'Am Schluß zurücksetzen des Druckers
SetDefaultPrinter (DefaultPrinter)
End Sub
kennt sich hier jemand mit CR und Access aus und kann mir weiterhelfen? ???
Hallo,
Mit Crystal Reports kenne ich mich zwar nicht aus, vermute somit
nur, dass der Report auch dort eine Datensatzherkunft besitzt, die
wohl auf einer Abfrage/Tabelle in Access beruht. Da würde ich eine
Methode "ReadRecords" so verstehen, dass sie die Daten neu abruft,
so wie ein "Requery" in Access.
Bist du also sicher, dass Access die aktuellen Daten liefert bevor
der Report geöffnet wird?
gruss ekkehard
Zitat von: brueninghoff am September 21, 2021, 08:53:41kennt sich hier jemand mit CR und Access aus und kann mir weiterhelfen? ???
Mit Access hat das wohl nichts zu tun.
Wenn du den Befehl eh kennst, wo klemmt es dann noch?
Was hindert dich daran in die Doku zu schauen, oder wie arbeitest du generell?