Neuigkeiten:

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

Mobiles Hauptmenü

Nur die erste Seite drucken

Begonnen von accessy, Januar 08, 2015, 18:47:34

⏪ vorheriges - nächstes ⏩

accessy

Der Bericht mit Namen "Ereignisse drucken" wird mit Daten gefüllt über eine Auswahl.
Das funktioniert gut.
Aber bei diesem Bericht möchte ich immer nur die erste Seite ausdrucken.

Private Sub Report_Open(Cancel As Integer)
DoCmd.OpenReport , "Ereignisse drucken", acPreview
DoCmd.PrintOut acPages, 1, 1
End Sub


Leider kommt die Fehlermeldung "Das Argument ist nicht optional" und der Debugger steht in der Zeile DoCmd.OpenReport , "Ereignisse drucken", acPreview.

Was muss ich ändern?
Gruß Achim

MzKlMu

#1
Hallo,
ZitatWas muss ich ändern?
das 1. Komma nach Openreport entfernen, da kommt kein Komma hin.
Die Access Hilfe hätte es Dir auch gesagt/gezeigt mit Beispiel.
Gruß Klaus

accessy

Hatte gegoogelt und in einem anderen Forum den Text 1:1 rausgezogen
Und zwar hier..weiter unten

http://www.technologische-hilfe.de/antworten/nur-erste-seite-im-bericht-drucken-support-225623932.html
Da war das Komma auch drin.

Jetzt habe ich es korrigiert und der Fehler in der nächsten Zeile heißt nun
....konnte ihr Objekt nicht drucken.




MzKlMu

Hallo,
das ist im Link genau so falsch.
Die erste Anlaufstelle bei solchen Fehlern sollte immer die Hilfe sein. Du musst ja nur den Cursor auf OpenReport stellen und F1 drücken, einfacher geht es wirklich nicht. Dort wird das sehr ausführlich beschrieben, siehe Bild.

Zu dem jetzigen Fehler kann ich nichts sagen, ich habe das mal getestet, das funktioniert bei mir wie gewünscht. Das muss am Drucker (oder Treiber) liegen.
Möglicherweise ist in der Seiteneinrichtung auch ein falscher Drucker eingestellt.
Gruß Klaus

accessy

Ist schon ne merkwürdige Sache mit Access, bzw. dieser DB.
Also diese DB gehört mir nicht. Ich versuche dieses Drucken nur der ersten Seite für meinen Bekannten hinzubiegen. In der DB gibt es nicht eine einzige Beziehung. Dass das überhaupt funktioniert....Naja..
Ich habe erstmal eine Beziehung zwischen der Kundennummer und dem UF hergestellt, damit nicht 956 Seiten von allen Kunden gedruckt werden. Jetzt werden zumindest nur die Berichte des gewählten Kunden genommen.
Im Formular habe ich eine Schaltfläche eingebaut, die den Bericht aufruft, dessen Daten über die Abfrage kommen.
Mein Drucker hier ist völlig intakt und druckt aus allen anderen Programmen.
Vielleicht hat ja diese Access DB von dem Bekannten irgendwo eine Einstellung für einen Drucker, oder Modus, der bei mir nicht geht....

MzKlMu

Hallo,
hast Du mal nachgesehen, was für ein Drucker in der Seiteinrichtung eingestellt ist?
Dort muss ein Drucker stehen , der auch bei Dir vorhanden ist, sonst kannst Du es nicht testen.
Gruß Klaus

MaggieMay

@Klaus:
Bist du sicher, dass man im Open-Ereignis eines Berichts diesen nochmals öffnen und drucken kann?
Das müsste doch eigentlich eine Endlosschleife bewirken...
Freundliche Grüße
MaggieMay

MzKlMu

@MaggieMay
ja, ich habe das getestet, ich hatte auch Zweifel.
Es wird eine Seite gedruckt. Es wird sogar die Vorschau auf eine Seite reduziert. Wenn man das PrintOut auskommentiert werden mit dem gleichen Befehl alle Seiten angezeigt.
Das scheint intelligenter wie gedacht.
Private Sub Befehl1_Click()
    DoCmd.OpenReport "Bericht7", acPreview
    DoCmd.PrintOut acPages, 1, 1 'wenn man auskommentiert die die komplette Vorschau gezeigt
End Sub


PS: Hast Du meine PN gelesen ?
Gruß Klaus

MaggieMay

Sorry Klaus,

aber dein Beispiel passt mAn nicht zu meiner (und der hier thematisierten) Frage.
Klar kann irgendein Bericht in der Vorschau geöffnet und dann gedruckt werden.

Aber wie sieht es aus, wenn im Open-Ereignis von Bericht B der Bericht B nochmals geöffnet und gedruckt werden soll?!

Und nochmals Sorry für die unbeantwortete PN, ich werde mich auf jeden Fall nochmal melden.
Freundliche Grüße
MaggieMay

MzKlMu

Hallo,
mir war gar nicht aufgefallen, dass da das Open Ereignis verwendet wurde. Hätte ich auch nicht verstanden. Ich hatte ja einen Button genommen, wie es meiner Meinung nach sein sollte. Das Open Ereignis macht doch keinen Sinn.
Der Druck muss doch auch irgendwie ausgelöst werden.
Gruß Klaus

accessy

Ich habe das Thema hier begonnen, deshalb schreibe ich hier auch weiter.
Ich habe mein Konzept ganz geändert.
Ich habe eine Abfrage erstellt, die als Datenherkunft für meinen Bericht steht.
Im HF ist über die Kundennummer das UF verknüpft.
Ich klicke auf meine Schaltfläche und es öffnet sich der Bericht in der Seitenansicht.
Annahme, dieser Kunde hat 9 Einträge im UF.
Der Bericht zeigt mir nun alle 9 Einträge an.
Alles bestens....Funktioniert super.

Jetzt die Frage.
Ich möchte in der Abfrage automatisch ohne Rückfrage eine Funktion drin haben, die dann immer nur die letzten 3 Berichte berücksichtigt.

Ich habe mal über den Ausdrucksgenerator versucht eine Formel einzubauen.
Aber das geht ja nicht, weil ich gar kein Feld habe "Anzahl der vorhandenen Einträge".

Geht das überhaupt über die Abfrage zu machen, oder kommt nun wieder VBA ins Spiel?

Vielen Dank für Infos
Gruß Achim

MaggieMay

Zitateine Funktion drin haben, die dann immer nur die letzten 3 Berichte berücksichtigt.
Meinst du vielleicht die letzten drei Datensätze? Woran wären die zu erkennen?
Freundliche Grüße
MaggieMay

accessy

Eigentlich am Datum.
Ich könnte ja in der Abfrage im Feld DATUM als Kriterium ABSTEIGEND setzen.
Dann werden die Einträge im Bericht immer absteigend des letzten Datums aufgelistet.
Aber wenn ich bei einem Kunden sagen wir mal 72 Einträge habe, wäre der Bericht 9 Seiten lang.

Jetzt könnte ich ja als Kriterium im Feld DATUM sagen, alle Einträge des aktuellen und letzten Monats. (Ich weiß zwar nicht wie, aber das geht bestimmt auch).

Nur was mache ich, wenn bei einem Kunden der letzte Eintrag vom Oktober 2014 ist?
Dann wäre der Bericht leer, weil kein Eintrag dem Kriterium entspricht.

Habe ich eine Chance in der Abfrage mit dem Ausdrucksgenerator irgendwie die letzten 3 Berichte zu definieren, oder nur über eine Art "CountIf" mit VBA?

Gruß Achim

MaggieMay

Du kannst "TOP" einsetzen in Verbindung mit absteigender Sortierung, das sollte klappen.
Die Sortierung im Bericht kann dann wieder eine andere sein.

Zitatirgendwie die letzten 3 Berichte zu definieren
Schon wieder "Berichte"?!  ::)
Freundliche Grüße
MaggieMay

accessy

Ich kann dir leider nicht folgen mit dem Begriff "Top".
Wo und wie soll ich den einsetzen?
Kannst du mir das mal genauer definieren?
Gruß Achim