Dezember 05, 2021, 07:12:13

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Crystal Report aus Access drucken

Begonnen von brueninghoff, September 21, 2021, 08:53:41

⏪ vorheriges - nächstes ⏩

brueninghoff

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? ???

Beaker s.a.

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
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

markus888

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?
10 Jahre Access