ich habe ein Formular erstellt und zu den selben Daten einen Bericht. Nun möchte ich im Formular eine Schaltfläche erstellen, mit der ich den Bericht zum gerade im Formular geöffneten Datensatz drucken kann. Bis jetzt konnte ich nur eine Schaltfläche erstellen, die den ganzen Bericht druckt, aber das will ich ja gar nicht…
Ich nehme an, dass hier ein Makro erforderlich ist - nur kenne ich mich mit denen gar nicht aus. Bisher habe ich immer fertige im Internet gefunden.
ich habe ein Formular erstellt und zu den selben Daten einen
Bericht. Nun möchte ich im Formular eine Schaltfläche
erstellen, mit der ich den Bericht zum gerade im Formular
geöffneten Datensatz drucken kann. Bis jetzt konnte ich nur
eine Schaltfläche erstellen, die den ganzen Bericht druckt,
aber das will ich ja gar nicht…
Deine Schaltfläche beinhaltet bestimmt den Aufruf „DoCmd.OpenReport (Berichtname)“. Wenn du die Hilfe dazu aufrufst, erkennst du sofort, daß die Methode OpenReport weitere optionale Argumente annimmt:
DoCmd.OpenReport reportname[, view][, filtername][, wherecondition]
Mit etwa folgendem Aufruf erreichst du das Gewünschte:
erstmal danke für Deine Hilfe! Leider stelle ich mich doch etwas zu blöd an. Die Schaltfläche ist soweit wie du beschrieben hast programmiert, aber ich bekomme immer noch alle Seiten des Berichts ausgedruckt. Ich habe allerdings erst nach deinem Hinweis auf den Primärschlüssel einen in der zugrundeliegenden Tabelle definiert. Der Inhalt dieses Feldes ist aber bei jedem Datensatz speziell (ist eine Bearbeitungsnummer), sollte also keine Verwechslung stattfinden.
Trotzdem: irgendwie will er noch nicht so, wie ich das will…
Eigentlich sollte es. Damit wir dir hier weiterhelfen können,
poste doch den Code der Ereignisprozedur hier hinein.
(die Ereignisprozedur siehst du, wenn du auf die Eigenschaften
des Knopfes gehst, dort auf Ereignis und dann auf die drei
Punkte „…“ gehst).
leider habe ich in der Ereignisprozedur rumgepfuscht, wobei diese gelöscht wurde. Komischerweise hatte ich die übrigens gar nicht selbst geschrieben, sondern nur gefunden (ich könnte das gar nicht schreiben). Ursprünglich hatte ich einen Makro zusammengestellt, der anscheinend automatisch in VisualBasic übersetzt wurde.
Wie kann ich denn dieses „Übersetzen“ wiederholen, bzw. wie müßte denn der vollständige Code lauten?
Vielen Dank im übrigen für die immer schnelle Antwort. Ich hoffe, dass ich als blutiger Laie (was Makros und VisualBasic angeht) Dir nicht zu sehr auf den Wecker gehe.
leider habe ich in der Ereignisprozedur rumgepfuscht, wobei
diese gelöscht wurde.
Das ist nactürlich nicht gut: Anfänger und dann rumpfuschen
Am besten du erstellst einen Knopf und bemühst den Assistenten. Dann wählst du „Berichtsoperationen“, „Bericht in Vorschau öffnen“ und läßt das Ding einfach erstellen. Damit verfügst du über eine Ereignisprozedur, die dann etwa so aussieht:
Private Sub pbReport\_Click()
On Error GoTo Err\_pbReport\_Click
Dim stDocName As String
stDocName = "R\_MeinBericht"
DoCmd.OpenReport stDocName, acPreview
Exit\_pbReport\_Click:
Exit Sub
Err\_pbReport\_Click:
MsgBox Err.Description
Resume Exit\_pbReport\_Click
End Sub
Vielen Dank im übrigen für die immer schnelle Antwort. Ich
hoffe, dass ich als blutiger Laie (was Makros und VisualBasic
angeht) Dir nicht zu sehr auf den Wecker gehe.
Bitte bitte. Ich bin da eigennützig: je mehr du erfährst, desto weniger wirst du in Zukunft nerven
Vielen Dank im übrigen für die immer schnelle Antwort. Ich
hoffe, dass ich als blutiger Laie (was Makros und VisualBasic
angeht) Dir nicht zu sehr auf den Wecker gehe.
Bitte bitte. Ich bin da eigennützig: je mehr du erfährst,
desto weniger wirst du in Zukunft nerven
wie nett… Danke für die Tipps, werde es mal versuchen und dann posten, was für Folgen mein Versuch ohne eigenes Fachwissen hatte…
da bin ich wieder! Habe alles so gemacht wie Du gesagt hast, und die Fehlermeldung sieht zumindest vernünftiger aus, als vorher. Wenn ich auf den fertigen Knopf klicke, erscheint die Meldung:
Syntaxfehler (fehlender Operator) in Abfrageausdruck ‚(Angebotsnummer=345579)‘.
Der Wert der Angebotsnummer (so heißt das Feld, das den Primärschlüssel beinhaltet) entspricht korrekterweise dem Wert des Felds im gerade geöffneten Datensatz. Alles weitere verstehe ich - wie immer - nicht.
Danke schon jetzt für die nächste Antwort, Gruß
Fabian
vielen Dank an Euch beide für die tolle Hilfe! Jetzt klappt alles so, wie ich es wollte und ich habe außerdem noch Grundlagen bei der Makro-Programmierung verstanden!
Das Problem hatte ich seit mittlerweile mehreren Monaten, mit Euch habe ich es in zwei Tagen gelöst, danke.