Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Nur EINEN DS drucken

Begonnen von Axel18, Oktober 24, 2014, 20:52:40

⏪ vorheriges - nächstes ⏩

Axel18

Ich habe in einer Tabelle rund 110 DS.
Die Tabelle ist mit zwei weiteren in einer Abfrage verknüpft, und diese Abfrage ist Basis für ein Formular "KundenberichtAbfrage"
Bis dahin hat alles geklappt.

Nun will ich das gerade aufgerufene Formular drucken. Hierfür lege ich einen Button an "Formularoptionen - nur ein Formular drucken", aber es werden alle 110 DS gedruckt (wenn ich den Druck nicht vorher abbreche.)

Wie schaffe ich es, dass nur der angezeigte DS gedruckt wird?
Wäre es eine Alternative, als Pendant zum Formular einen Bericht zu erstellen  (Quasi als Zwilling)?
Dann könnte ich aus dem gerade bearbeitenden Formular per Button den Bericht drucken, oder??

Axel
Beste Grüße
Axel

MaggieMay

Hallo,

Formulare sind nur bedingt zum Ausdrucken geeignet. Wenn du nur den aktuellen DS drucken willst, musst du das Formular filtern vor dem Drucken.
Besser jedoch wäre es, einen Bericht zu erstellen und ihn mit Übergabe eines Filterkriteriums aus dem Formular heraus zu öffnen.
Freundliche Grüße
MaggieMay

bahasu

#2
Servus

Axel18

Mit dem Hinweis bei Donkarl komme ich leider nciht klar, aber MaggieMae hat eigentlich das bestätigt, was ich gefragt hatte.

Ich habe also nun einen "BEricht" erstellt, der sich wie das Formular auf die gleiche Abfrage bezieht.
So, nun stehe ich allerdings wider vor einem Berg.

In das Formular habe ich einen Button zum Aufruf des Berichts eingebaut.

Beim Klicken:
Private Sub Befehl35_Click()
On Error GoTo Err_Befehl35_Click
    Dim stDocName As String
    stDocName = "KundenBerichtAbfrage"
    DoCmd.OpenReport stDocName, acPreview
Exit_Befehl35_Click:
    Exit Sub
Err_Befehl35_Click:
    MsgBox Err.Description
    Resume Exit_Befehl35_Click
End Sub

Ich rufe also im Formular den Kunden "Müller" auf, das entsprechende Kundenblatt erscheint. Nun klicke ich auf den Button, aber da kommt der Bericht zu dem ersten Kunden aus der Tabelle, also ein Kunde mit "A......."
Wie komme ich denn nun dahin, dass bei Anklicken auch der Bericht zu "Müller" erscheint und damit gedruckt werden kann?

Axel

Beste Grüße
Axel

DF6GL

Hallo,

warum kommst Du mit Donkarl nicht klar?

Mehr als dort und besser kann es doch nicht beschrieben werden..
Zitat
Bei einem Zahlfeld:
DoCmd.OpenReport "DeinBericht", , , "Id =" & Me!Id

bei einem Textfeld:
DoCmd.OpenReport "DeinBericht", , , "Firma = '" & Me!Firma & "'"

WO kommst Du da nicht klar?

Axel18

Ganz einfach, Franz,

weil ich mit Programmieren nciht sehr vertraut bin und wirklich nicht weiss, wo ich eine der beiden Donkarl-Versionen einsetzen müsste, abgesehen davon, dass ich nicht weiss, ob das dann auch so funktioniert, wie ich mir das vorstelle.


Beste Grüße
Axel

DF6GL

Hallo,

zum Einen:  Du musst doch aber wissen, ob es ein ID-Zahlenfeld (Primärschlüssel) oder nur ein Firmennamen-Feld gibt. (Schau halt mal in der Tabelle nach, zudem sollte es ein Formularfeld geben, das den ID-Wert, respektive den Kundennamen anzeigt, auch wenn es auf unsichtbar gesetzt sein sollte) Ersteres ist (in aller Regel) ein Zahlenfeld, letzteres ein Textfeld.


"... wo ich ..."

Na hier:
DoCmd.OpenReport stDocName, acPreview,,"KundID = " & Me!KundID


Das ist der "Where-Condition"-Parameter , der dafür sorgt, dass der Bericht nur den Datensatz mit der Kunden-ID anzeigt, d. h. der Bericht wird nach der Kunden-ID gefiltert.


Zum Anderen:  Das siehst Du ganz schnell, wenn Du es ausprobierst....

Axel18

Also .......

das Formular wird über "ksort" aufgerufen, also den Kundenkurzname.
Nun habe ich versucht, Deinen Hinweis für mich anzupassen und die Zeile DoCmd...
wie folgt abgeändert:

DoCmd.OpenReport stDocName, acPreview, , "Ksort = " & Me!ksort

Nun wird zwar der Bericht aufgerufen, aber jetzt kommt ein Fenster:
Parameterwert eingeben, und der Name des Kunden "Müller" steht über der Leerzeile.
Gebe ich nun in die Leerzeile "Müller" ein, kommt tatsächlich der "Müller-Bericht". Prima!

Frage: kann man den Schritt der erneuten Kundennamen-Eingabe irgendwie vermeiden / überspringen?
Beste Grüße
Axel

bahasu

Hi,

was passiert mit:
DoCmd.OpenReport stDocName, acPreview, , "Ksort = '" & Me!ksort & "'"

Harald
Servus

Axel18

Super, herzlichen Dank an die Helfer und ein schönes Wochenende

PS: ich "drohe" schon an, demnächst weitere dumme Fragen zu stellen !!!
Beste Grüße
Axel