Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: accessy am Januar 08, 2015, 18:47:34

Titel: Nur die erste Seite drucken
Beitrag von: accessy am Januar 08, 2015, 18:47:34
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
Titel: Re: Nur die erste Seite drucken
Beitrag von: MzKlMu am Januar 08, 2015, 18:54:40
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.
Titel: Re: Nur die erste Seite drucken
Beitrag von: accessy am Januar 08, 2015, 19:05:21
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.



Titel: Re: Nur die erste Seite drucken
Beitrag von: MzKlMu am Januar 08, 2015, 19:14:40
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.
Titel: Re: Nur die erste Seite drucken
Beitrag von: accessy am Januar 08, 2015, 19:31:20
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....
Titel: Re: Nur die erste Seite drucken
Beitrag von: MzKlMu am Januar 08, 2015, 19:35:02
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.
Titel: Re: Nur die erste Seite drucken
Beitrag von: MaggieMay am Januar 08, 2015, 19:53:29
@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...
Titel: Re: Nur die erste Seite drucken
Beitrag von: MzKlMu am Januar 08, 2015, 20:01:35
@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 ?
Titel: Re: Nur die erste Seite drucken
Beitrag von: MaggieMay am Januar 09, 2015, 00:22:14
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.
Titel: Re: Nur die erste Seite drucken
Beitrag von: MzKlMu am Januar 09, 2015, 16:20:50
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.
Titel: Re: Nur die erste Seite drucken
Beitrag von: accessy am Januar 14, 2015, 13:22:37
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
Titel: Re: Nur die erste Seite drucken
Beitrag von: MaggieMay am Januar 14, 2015, 13:57:50
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?
Titel: Re: Nur die erste Seite drucken
Beitrag von: accessy am Januar 14, 2015, 15:43:29
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
Titel: Re: Nur die erste Seite drucken
Beitrag von: MaggieMay am Januar 14, 2015, 15:55:32
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"?!  ::)
Titel: Re: Nur die erste Seite drucken
Beitrag von: accessy am Januar 14, 2015, 18:14:12
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
Titel: Re: Nur die erste Seite drucken
Beitrag von: database am Januar 14, 2015, 20:15:26
Hallo Achim,

warum sträubst du dich gegen den Lösungsvorschlag von MzKlMu aus Antwort #7?
Das ist das einzige was wirklich funktioniert und auch die richtigen Daten zur Anzeige bringt.

Erstell auf dem Formular, von dem aus du den Bericht drucken oder anzeigen willst einen Button und füge dem den Code ins Click-Ereignis ein, den Klaus gezeigt hat. Du bekommst dadurch eine Seite (die erste) angezeigt und auch ausgedruckt.

Mit TOP kann man die Anzahl die Ergebnissätze einer Abfrage beienflussen.

SELECT TOP 3 ..... würde dann die ersten 3 Datensätze deiner Auswahl anzeigen

Allerdings würde dann dein Bericht eben diese 3 Datensätze zeigen / drucken und nicht die erste Seite.
Ob das dem entspricht was du sehen willst ...  naja.

Im Ereignis 'Beim Öffnen' des Berichts kannst du die Anzahl der anzuzeigenden Seiten nicht festlegen, das funktioniert nur so wie Klaus es gezeigt hat.
Titel: Re: Nur die erste Seite drucken
Beitrag von: accessy am Januar 14, 2015, 21:57:42
Weil es nicht funktionierte. Bei mir zumindest.
Aber die "SELECT TOP 3" Lösung gefällt mir eh besser.

Leider weiß ich nichts damit anzufangen.
In einem anderen Forum hat jemand geschrieben
Zitat
schreibe deine TOP-Klausel direkt in die Datenherkunfts-Eigenschaft deines Berichtes

SELECT TOP 10 * FROM Abfrage

Das ging voll daneben...Als ich das so einbaute in der Datenherkunft im Bericht

SELECT TOP 10 * FROM Besuchsbericht drucken

wurden alle Felder abgefragt.....auch falsch.

Wo und in welchem Feld muss ich in der Abfrage dieses SELECT TOP 10 einbauen?
Titel: Re: Nur die erste Seite drucken
Beitrag von: database am Januar 14, 2015, 22:02:49
ZitatWeil es nicht funktionierte. Bei mir zumindest
Das wird ja wohl einen Grund haben - wahrscheinlich beissen sich ein paar Codeleichen die u.U. im Bericht herumkugeln

Aber egal, wenn dir eine eingeschränkte Datenmenge besser zusagt als die erste Berichtsseite...
Die Datenherkunft des Berichts wird ja eine Abfrage sein - ich meine Abfrage, die als solche gespeichert ist.

Wenn dem so ist:

Abfrageentwurf --- klick in den Tabellenbereich ---- Eigenschaften... Spitzenwerte  '3' eingeben
Titel: Re: Nur die erste Seite drucken
Beitrag von: accessy am Januar 14, 2015, 22:10:13
Was für eine einfache Lösung.
Oh Mann und ich eiere hier rum...
Vielen, vielen Dank für die Ausdauer zu diesem Anliegen.

Schönen Abend noch
Gruß Achim
Titel: Re: Nur die erste Seite drucken
Beitrag von: database am Januar 14, 2015, 22:12:19
Ach ja - und das Feld Datum musst du in der Abfrage natürlich Absteigend sortieren, damit du auch immer verlässlich die letzten 3 Datensätze angezeigt bekommst.
Die Sortierung kannst du dann im Bericht selbst wieder aufsteigend stellen
Titel: Re: Nur die erste Seite drucken
Beitrag von: MaggieMay am Januar 14, 2015, 22:36:57
Hi,
Zitat von: accessy am Januar 14, 2015, 22:10:13
Was für eine einfache Lösung.
dann wechsle mal in die SQL-Ansicht der Abfrage und schau dir den generierten Code an,
damit du siehst wie es auf direktem Wege gegangen wäre.

Es kann auch nichts schaden, ab und zu mal ein wenig in der Access-Hilfe zu stöbern.