PDA

Vollständige Version anzeigen : Bericht als Fax Versenden...


--=Franky=--
07.07.2006, 09:15
Hallo miteinander,

ich hatte gehofft wenigstens ansatzweise an eine Lösung zu kommen, musste aber einsehen, dass es nicht ohne Hilfe läuft.
Deshalb jetzt etwas komplexer:

Meine DB macht es erforderlich, dass täglich einmal ein Fax-Bericht verschickt werden muss,
der aus einem (nach bestimmten Kriterien gefilterten) Bericht besteht.
Ich habe schon ein Modul von TommyK. eingebunden und dachte, das wäre so evtl. der Weg...

Wenn der Bericht sich öffnet, soll lediglich das FritzFax oder wenigstens als Vorauswahl zur Verfügung stehen ( If name Like FritzFax...)
Wichtig daran ist, dass die Ausrichtung automatisch auf Querformat steht.

Anschließend soll die Routine das sog. Archiv-Bit setzen, das im Code so schon funktioniert (Funktionalität darf nur nicht verloren gehen).

Ich stelle jetzt ein paar Sektionen mit Code ein:

Das ist der Button zum versenden der Faxe:

Private Sub btn_tglfax_Click()
On Error GoTo Fehlermeldung:

Dim i As String

i = InputBoxDK("Bitte Passwort eingeben:")

If i <> "entsprechendes Passwort" Then

MsgBox "Falsches Passort!"
Exit Sub
End If

DoCmd.SetWarnings False 'Warnungen, dass Datensätze hinzugefügt/geändert werden, aussschalten
DoCmd.OpenReport "Bericht", acViewPreview, , "chkb_archiv = false"
strSQL = "Update [Graff-Koord] SET [archiv_datum]= '" & Now & "', [chkb_archiv]= TRUE WHERE [chkb_archiv] = FALSE;"
DoCmd.RunSQL strSQL

DoCmd.RunCommand acCmdFitToWindow
DoCmd.RunCommand acCmdZoom100
Exit Sub 'Sub verlassen, sonst kommt er jedesmal in die Fehlerbehandlung

Fehlermeldung: 'Fehlerbehandlung, wenn der Bericht keine Daten enthält
If Err.Number = 2501 Then
Exit Sub
Else
MsgBox Err.Description
End If
DoCmd.SetWarnings True
End Sub




Damit habe ich es im Bericht versucht :rolleyes:

Option Compare Database

Private Sub Report_Activate()
If MsgBox("Bericht drucken?", vbYesNo, "Druckabfrage") = vbYes Then
ChangePrinter "Bericht", 2
' DoCmd.PrintOut acPages, 1
End If
End Sub

Private Sub Report_NoData(Cancel As Integer)
'Wenn keine Datensätze vorhanden, dann Bericht nicht anzeigen.
MsgBox "Es sind keine neuen Datensätze vorhanden!"
Cancel = True
End Sub

Private Sub Report_Open(Cancel As Integer)
On Error GoTo Err_PrinterTable

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frm_PrinterTable"
DoCmd.OpenForm stDocName, , , stLinkCriteria

exit_PrinterTable:
Exit Sub

Err_PrinterTable:
MsgBox Err.Description
Resume exit_PrinterTable
End Sub



und das ist das Modul von TommyK.

'---------------------------------------------------------------------------------------
' Procedure : ChangePrinter
' DateTime : 05.08.2005 15:36
' Author : TommyK
' Purpose : wechselt den Standarddrucker für den gewählten Bericht
' Inputs : sReportName = Name des Berichts, iPrtIndex = Index des gewählten Druckers
' lngCopies = Anzahl der Kopien, lngAusrichtung = 1 = Hochformat, 2 = Querformat
' Output :
' Example : ChangePrinter "rpt_MeinBericht", 1
' Würde den Bericht "rpt_MeinBericht" auf dem 2. Drucker des Systems
' mit 1 Kopie und im Hochformat ausgeben
'---------------------------------------------------------------------------------------
Dim prtDefault As Printer
Dim prtReportPrinter As Printer
Dim prtPrinter As Printer

On Error GoTo ChangePrinter_Error

Set prtDefault = Application.Printer
Set prtPrinter = Application.Printers(iPrtIndex)
Application.Printer = prtPrinter
DoCmd.OpenReport sReportName, acViewDesign, acHidden
Set prtReportPrinter = Reports(sReportName).Printer
With Reports(sReportName).Printer
.Copies = lngCopies
.Orientation = lngAusrichtung
End With
DoCmd.OpenReport sReportName, acViewNormal
DoCmd.Close acReport, sReportName, acSaveNo
Set prtReportPrinter = Nothing
Application.Printer = prtDefault

On Error GoTo 0
Exit Sub

ChangePrinter_Error:
Dim strErrString As String
strErrString = "Error Information..." & vbCrLf
strErrString = strErrString & "Error#: " & Err.Number & vbCrLf
strErrString = strErrString & "Description: " & Err.Description
MsgBox strErrString, vbCritical + vbOKOnly, "Error in procedure ChangePrinter of Modul mod_Printers"
End Sub


Wenn sich der Sache jemand annehmen könnte, das wäre echt toll...

R@ptor
07.07.2006, 19:40
Hi Franky

da wirst du wohl trauer haben, musst auf ein Prof. Tool ausweichen, ansonsten geht da kaum etwas. Ken! z.B. ist da sehr geeignet...

greets

Lars

--=Franky=--
07.07.2006, 19:59
Hallo Raptor,
das glaube ich nicht so wirklich.
Vielleicht habe ich mich auch etwas unglücklich im Betreff ausgedrückt.
Ich wäre ja happy wenn der Bericht sich, nach meinen Filtern öffnet
und ich dann die Auswahl der Drucker einfach vorgebe.
Bei uns existiert ein FritzFax! und der User soll dann lediglich
das als Auswahl zur Verfügung haben und die Ausrichtung soll fest vorgegeben sein.
Da der Faxdrucker ja vom Namen her den Begriff (Fax) enthält dachte ich,
man könnte danach auswählen.
Das war es dann eigentlich auch schon ;)