Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Listenfeld mittels Kombifeld filtern

Begonnen von claudia2324, September 18, 2012, 17:01:04

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

.
.
.
Dim i as long
For i = 1 to nz(Me!anzahl_ersatzdruck,1)
DoCmd.OutputTo acOutputReport, "Kurs_" & Me!Combobox_ersatz, acFormatPDF, CurrentProject.Path & "\Kursnummer-" & Me!Combobox_ersatz & "_" & "Ersatzliste-" & Format(Date, "\_yyyy-mm-dd") & ".pdf"
Next
.
.
.

claudia2324

Hallo,

danke!  :)

Jetzt läuft die For-Schleife entsprechend der Eingabe in das Textfeld "anzahl_ersatzdruck" durch, aber zum Schluss ist nur eine Seite im pdf und nicht die gewünschte Anzahl der Exemplare.

Was fehlt noch?  ???

LG

Claudia

DF6GL

#62
Hallo,

es wird ja immer dieselbe PDF-Datei erzeugt, d. h. die vorhergehende überschrieben. Der BERICHT hat ja keine Mehrfachseiten, es wird der einseitige Bericht x-mal in dieselbe PDF-Datei geschrieben.  Insofern sollte der PDF-Dateiname noch um den Schleifen-Laufwert ergänzt werden. Z. B.:


DoCmd.OutputTo acOutputReport, "Kurs_" & Me!Combobox_ersatz, acFormatPDF, CurrentProject.Path & "\Kursnummer-" & Me!Combobox_ersatz & "_" & "Ersatzliste-" & Format(Date, "\_yyyy-mm-dd\-") & i & ".pdf"


Um in EINER PDF-Datei mehrere Exemplare (d. h. aber genauer mehrere Seiten ) zu generieren , muss der  Bericht selber mehrseitig sein .



Das ist auch zu erreichen, indem Du eine weitere Tabelle ("tblLfNr") mit nur einer Spalte ("LfNr"), in der eine fortlaufende Nummer (von 1 bis 100) hinterlegt wird, erzeugst und die Berichtsabfrage etwa so änderst:



strSQL = "SELECT  TblKurs.Raumnr, TblKurs.Var2, TblKurs.Var3, TblKurs.Var4, TblKurs.Var5,TblKurs.Var6 FROM TblKurs , tblLfNr" & _
" Where 1=2  and LfNr <= " & nz(Me!anzahl_ersatzdruck,1)


(Wie gehabt diesen SQL-String der Berichtsabfrage zuweisen. Die Schleife um Outputto entfällt dann, weil der Bericht EINMAL als PDF gespeichert wird. Der Bericht selber erzeugt die "Kopieen")



Ich frage mich indessen, warum denn nun eine PDF-Datei mit mehreren identischen Seiten überhaupt erzeugt werden soll.    Wenn jemand mehrere Druckkopien einer Berichtsseite (Blankoformular) benötigt, kann er doch selber die "PDF-Datei mit nur einer Seite" durch Einstellen der Kopienanzahl im PDF-Reader-Druckdialog ausdrucken..  ???

claudia2324

Hallo,

vielen Dank für die sehr gute Erklärung.  :)

Ich habe nun die Tabelle TblKurs erstellt mit nur einer Spalte LfNr mit Werten von 1 bis 100.

Leider erhalte ich immer noch nur eine Seite im PDF anstatt der gewünschten Anzahl an Exemplaren in dem einen PDF.

Was ist noch falsch bzw. habe ich noch nicht ausßreichend verstanden?

Hier mal meine Codeanpassung, falls der Fehler hierdrin steckt.

Private Sub Ersatz_Kursliste_Click()

Dim stDocName As String, anzahl_ersatzdruck As Integer, strSQL As String

strSQL = "SELECT TblKurs.Raumnr, TblKurs.Var2, TblKurs.Var3, TblKurs.Var4, TblKurs.Var5,TblKurs.Var6 FROM TblKurs , tblLfNr" & _
" Where 1=2  and LfNr <= " & nz(Me!anzahl_ersatzdruck,1)

stDocName = "abf_Kurs_" & Me!Combobox_ersatz

CurrentDb.QueryDefs(stDocName).SQL = strSQL

DoCmd.OutputTo acOutputReport, "Kurs_" & Me!Combobox_ersatz, acFormatPDF, CurrentProject.Path & "\Kursnummer-" & Me!Combobox_ersatz & "_" & "Ersatzliste-" & Format(Date, "\_yyyy-mm-dd") & ".pdf"

End Sub


Wäre um Hilfe sehr dankbar.

VG

bahasu

Hi,

wenn die Frage auf die Anzahl der Druckkopien abzielt, so kann man die per VBA dem zu druckenden Bericht mitgeben in der auf
http://www.access-programmers.co.uk/forums/showthread.php?t=231177
beschriebenen Weise. In diesem Fall ist "intCopies" auf den gewünschten Wert zu setzen.

Harald
Servus

DF6GL

#65
Hallo,

@bahasu:  Ob die Einstellung der Printer-Eigenschaften auch bei der Ausgabe in eine PDF-Datei funktioniert, stelle ich jetzt erst mal dahin. (Müßte ich erst mal austesten  ;)  )


ZitatIch habe nun die Tabelle TblKurs erstellt mit nur einer Spalte LfNr mit Werten von 1 bis 100.

denke mal, dass es sich um einen Schreibfehler handelt..


Ja, da ist noch ein logischer Fehler drin, weil ja gar kein DS von der Kurs-Tabelle geliefert werden soll. Also auf folgende Weise:

Private Sub Ersatz_Kursliste_Click()

Dim stDocName As String, anzahl_ersatzdruck As Integer, strSQL As String

strSQL = "SELECT Null as Raumnr, Null as Var2, Null as Var3, Null as Var4, Null as Var5, Null as Var6 FROM tblLfNr " & _
"
LfNr <= " & nz(Me!anzahl_ersatzdruck,1)

stDocName = "abf_Kurs_" & Me!Combobox_ersatz

CurrentDb.QueryDefs(stDocName).SQL = strSQL

DoCmd.OutputTo acOutputReport, "Kurs_" & Me!Combobox_ersatz, acFormatPDF, CurrentProject.Path & "\Kursnummer-" & Me!Combobox_ersatz & "_" & "Ersatzliste-" & Format(Date, "\_yyyy-mm-dd") & ".pdf"

End Sub


Trotzdem nochmal die Frage:  WARUM in EINER PDF-Datei mehrfache Seiten desselben Inhaltes?  


bahasu

Hi Franz,

Zitat von: DF6GL am Oktober 17, 2012, 18:14:59
@bahasu:  Ob die Einstellung der Printer-Eigenschaften auch bei der Ausgabe in eine PDF-Datei funktioniert, stelle ich jetzt erst mal dahin. (Müßte ich erst mal austesten  ;)  )

hatte ich heute getestet: Als ich das erstellte pdf zum Drucker schicken wollte, sah ich bei der "Anzahl Exemplare" die von mir vorgebene Zahl.
Geht auch bei .xps.

Harald
Servus

DF6GL

Hallo,

ok, gut zu wissen.
 
Das heißt demnach, das sich in der PDF-Datei ( oder xps-Datei) (bei unserem Threat-Thema) eine Seite des Berichtes befindet und lediglich im Druckdialog die Kopieenanzahl entspr. eingesetzt wird.




claudia2324

#68
Hallo,

oh, die letze Disakussion gibt mir Hoffnung das mein Vorhaben klappen kann.  :)

Frage von DF6GL:
Zitat
Trotzdem nochmal die Frage:  WARUM in EINER PDF-Datei mehrfache Seiten desselben Inhaltes?  
[/size]

--> Die pdf-Datei mit den Blankos soll auch ggf. bei Bedarf an größeren Mengen von Blankos an eine Druckerei übergeben werden. Es ginge natürlich auch, die Druckerei damit zu beauftragen ein Dokument x-mal auszudrucken!!, aber so soll es nun mal gehandhabt werden!  :-[ Ist nicht meine Entscheidung...

Leider bin ich noch nicht so fit, als dass ich es nun trotz vielfacher Versuche hinbekomme, den Vorschlag von bahasu
Zitatwenn die Frage auf die Anzahl der Druckkopien abzielt, so kann man die per VBA dem zu druckenden Bericht mitgeben in der auf
http://www.access-programmers.co.uk/forums/showthread.php?t=231177
beschriebenen Weise. In diesem Fall ist "intCopies" auf den gewünschten Wert zu setzen.
[/size] korrekt in meinen Code zu integrieren. Oder mit Anderen Worten...
Zitat....im Druckdialog die Kopieenanzahl entspr. eingesetzt wird.
... entsprechend umzusetzen???

Tja, was nun, was tun...  :-[ Ich setzte mich weiter damit auseinander, aber wäre um Unterstützung was den Quellcode angeht nach wie vor dankbar...   :)

LG

Claudia

bahasu

Hallo Claudia,

Zitat von: claudia2324 am Oktober 18, 2012, 15:57:22
--> Die pdf-Datei mit den Blankos soll auch ggf. bei Bedarf an größeren Mengen von Blankos an eine Druckerei übergeben werden. Es ginge natürlich auch, die Druckerei damit zu beauftragen ein Dokument x-mal auszudrucken!!, aber so soll es nun mal gehandhabt werden!  :-[ Ist nicht meine Entscheidung...

Bei dem Stichwort "Druckerei" sei die Frage erlaubt, wie umfangreich die Druckauflage sein soll.
Der Hintergrund dieser Frage ist, dass microsoft die in Frage kommende Variable zwar als Integer deklariert hat, man aber von der maximalen Zahl (ca. 32000 ) nur 999 real eintragen kann.  >:(
Ist das noch akzeptabel?

Zitat
wäre um Unterstützung was den Quellcode angeht nach wie vor dankbar...   :)

Wenn das obige ok ist, werde ich gerne ein Beispiel + Hinweise mitteilen.


Harald
Servus

claudia2324

Hallo Harald,

vielen Dank für deine Antwort.

Zu der Frage nach der Druckmenge... Es werden für die größte Veranstaltung c.a. um die 100 Blankos benötigt geschätzt nach Anzahl kurzfristiger Teilnehmer. Problem war eben, dass die Vertrags-Druckerei das schon "verdödelt hat" und dann musste während der Veranstaltung einige Bögen auf anderen Druckern gedruckt weden, was danach Probleme beim einscannen gab (Auswertung der Bögen erfolgt elektronisch mit einer OMR Software). Wenn die Datei mit der korrekten Anzhal der PFDs direkt an die Druckerei gegeben wird, sollte das nicht mehr passieren.

bahasu :
ZitatWenn das obige ok ist, werde ich gerne ein Beispiel + Hinweise mitteilen.

Ich wäre dankbar, wenn ich ein Beispiel mit Hinweisen mitgeteilt bekommen kann.

Claudia

bahasu

Hallo Claudia,

1.   Mache eine Sicherungskopie Deiner Datenbank
2.   die runtergeladene Datei entzippen
3.   Das Modul ,,Modul_Druckerparameter" in Deine Datenbank importieren
4.   Beim Aufruf Deines Berichtes eine Zeile hinzufügen:
       Call Printer_Anzahl("Bericht1", Me.Anzahl)                               ' diese Zeile bitte einfügen               
       DoCmd.OpenReport "Bericht1", acPreview, , , , True
5.   Ersetze "Bericht1" durch den Namen Deines Berichtes
6.   Ersetze Me.Anzahl durch einen Zahlenwert oder eine Konstante oder ein Steuerelement, das die Anzahl vorgibt

Das Formular ,,Formular1" diente zum Testen: Anzahl wird im ungebundenen Steuerelement vorgegeben.
Nach Speichern wird der Bericht aufgerufen, in dessen Eigenschaft die Anzahl hinterlegt wurde.

HTH
Harald

[Anhang gelöscht durch Administrator]
Servus

claudia2324

#72
Hallo,

vielen Dank für die Hilfe.  :)

Nun habe ich alles wie vorgegeben umgesetzt und erhalte leider immer noch nur ein Durckexemplar in der PDF-Datei anstatt der gewünschten Anzahl.

Wo steckt der Fehler?

Hier mal mein jetziger Code:

[color=blue]Private Sub Ersatz_Kursliste_Click()

Dim stDocName As String, anzahl_ersatzdruck As Integer, strSQL As String

strSQL = "SELECT  TblKurs.Raumnr, TblKurs.Var2, TblKurs.Var3, TblKurs.Var4, TblKurs.Var5,TblKurs.Var6 FROM TblKurs Where 1=2"

stDocName = "abf_Kurs_" & Me!Combobox_ersatz

CurrentDb.QueryDefs(stDocName).SQL = strSQL

Call Printer_Anzahl(Kurs_" & Me!Combobox_ersatz, Me.anzahl_ersatzdruck)

DoCmd.OutputTo acOutputReport, "Kurs_" & Me!Combobox_ersatz, acFormatPDF, CurrentProject.Path & "\Kursnummer-" & Me!Combobox_ersatz & "_" & "Ersatzliste-" & Format(Date, "\_yyyy-mm-dd") & ".pdf"

End Sub[/color]


- Aus einer Auswahl mehrerer Berichte wird der gewünschte über eine ComboBox ausgewählt.
- An die Blanko-Berichte sollen keine Datensätze übergeben werden.


Ich hoffe ihr könnt mirhelfen.

VG

Claudia

bahasu

Hi Claudia,

Du hast Recht, mit dem DoCmd.OutputTo wird die Anzahl nicht übergeben.

Ist es bei Dir machbar, dass Du in der Berichtsvorschau
1. Seite einrichten aufrufst
2. Im Register "Seite" den "Speziellen Drucker" markierst
3. und dann bei "Drucker" einen "PDF"-Driver (sofern vorhanden) aussuchst? (Das waren meine Testbedingungen, bei denen im pdf-File die Anzahl drin war)


Harald
Servus

DF6GL

Hallo,

meine Befürchtung:

ZitatOb die Einstellung der Printer-Eigenschaften auch bei der Ausgabe in eine PDF-Datei funktioniert, stelle ich jetzt erst mal dahin. (Müßte ich erst mal austesten  


kristallisiert sich nicht als unbegründet heraus..   Die Verwertung der "Anzahl Kopiien" im Druckdialog hängt vom (PDF-) Treiber ab.  Bei einem Test konnte ich nur bei den PDF-Druckern "Adobe PDF", "soft Xpansion Perfect PDF 6"

nicht aber bei "Expert PDF", "Freepdf" , "Nitro PDF Creator", "PDFCreator","EasyPDF Printer 4"

die entspr. Anzahl Seiten generieren.    (Erhebt keinen Anspruch auf Vollständigkeit.)




ZitatWenn die Datei mit der korrekten Anzhal der PFDs direkt an die Druckerei gegeben wird, sollte das nicht mehr passieren.


Das beutet ja nur das Austreiben des Teufels mit Beelzebub..



Würde eher einen Bericht so trimmen, dass er beim (evtl. erforderlichen ) Ausdruck annähernd exakt mit den gedruckten (PDF-) Formularen übereinstimmt .


Gravierende Druckerunterschiede sollte es eigentlich nicht geben, wenn z. B. die Seitenränder an den "worst case" -Fall angepasst werde, d. h. so groß eingestellt sind, dass Druckereinschränkungen in dieser Beziehung nicht zum Tragen kommen.