PDA

Vollständige Version anzeigen : Selektiver Druck


Helikutscher
24.03.2006, 14:29
Hallo Ihr hilfreichen Köpfe,

mal wieder eine Frage (glaub die 100.000ste :D ).

Hab eine Datenbank in Anlehnung an Nordwind. Aus dem Formular Bestellungen mit UF Bestellungen_Unterformular) wird mittels eines Schaltfeldes "Reservierungen" für jeden Artikel ein Bericht gedruckt. Klappt alles tadellos. Jetzt kann es aber vorkommen, daß später der eine oder andere Artikel noch dazukommt. Für diese neuen Artikel soll dann natürlich auch ein entsprechender Reservierungszettel gedruckt werden. Nach erneutem Druckvorgang werden aber alle Artikelzettel gedruckt (auch die, die schon einmal ausgedruckt wurden). Ist ja auch klar. Genau das möchte ich vermeiden und habe vor das Artikelfeld ein Kontrollkästchen gesetzt. Ich möchte damit erreichen, daß eben nur die angekreuzten Artikel gedruckt werden.

Zermarter mir schon seit Stunden den Kopf und komm nicht weiter. Der Druck-Code sieht wie folgt aus:

Private Sub Befehl69_Click()
On Error GoTo Err_Befehl69_Click

Dim stDocName As String

stDocName = "Reservierungen"
DoCmd.OpenReport stDocName


Exit_Befehl69_Click:
Exit Sub

Err_Befehl69_Click:
MsgBox Err.Description
Resume Exit_Befehl69_Click



End Sub


Sicher wieder nur ein kleines Problem und seh den Wald vor lauter Bäumen nicht. Bitte dringend um Eure Hilfe :) DANKE!!!

Arne Dieckmann
24.03.2006, 14:57
Dieser Code druckt nur die Datensätze, die ein Häkchen besitzen (s. auch FAQ 5.9):

DoCmd.OpenReport stDocName ,,,"JaNeinFeldInTabelle=True"

Helikutscher
25.03.2006, 08:51
Hallo Arne,

vielen Dank für Deinen schnellen Lösungsvorschlag.

Hab nun folgendes gemacht:
In der Tabelle Bestelldetails ein Feld Druck eingefügt (Felddatentyp ja/nein, Format wahr/falsch)
Die dem Formular Bestellungen_Unterformular zugrunde liegende Abfrage um dieses Feld ergänzt
den Druckcode wie folgt ergänzt:
On Error GoTo Err_Befehl69_Click

Dim stDocName As String
Dim Druck As Variant

stDocName = "Reservierungen"
DoCmd.OpenReport stDocName, acPreview, , , , "Druck = true"


Exit_Befehl69_Click:
Exit Sub

Err_Befehl69_Click:
MsgBox Err.Description
Resume Exit_Befehl69_Click


End Sub

Leider werden immer noch ALLE Artikel unter dem aktuellen Auftrag gedruckt. Was hab ich denn jetzt schon wieder falsch gemacht?

Arne Dieckmann
25.03.2006, 08:57
Du setzt einfach zuviele Kommata ein.
DoCmd.OpenReport stDocName, acPreview, , "Druck = true"

Evtl. langt das Kriterium noch nicht - dann musst du dieses um die ID des Hauptdatensatzes erweitern:
"HauptID=" & Me!txtID & " AND Druck = true"

Helikutscher
25.03.2006, 09:23
Hallo Arne,

ist mir jetzt schon langsam peinlich :mad: .

Code sieht jetzt so aus:

On Error GoTo Err_Befehl69_Click

Dim stDocName As String
Dim Druckoption As Variant

stDocName = "Reservierungen"
DoCmd.OpenReport stDocName, acPreview, "Bestell-Nr=" & Me![Bestell-Nr] & "AND Druck = true"


Exit_Befehl69_Click:
Exit Sub

Err_Befehl69_Click:
MsgBox Err.Description
Resume Exit_Befehl69_Click



End Sub

Druckt auch, aber leider wieder alle Artikel.

Arne Dieckmann
25.03.2006, 09:26
Jetzt fehlt ein Komma, außerdem sollte die Bestell-Nr wg. des Minus-Zeichens in eckige Klammern gesetzt werden und vor dem AND fehlt ein Leerzeichen:


DoCmd.OpenReport stDocName, acPreview, ,"[Bestell-Nr]=" & Me![Bestell-Nr] & " AND Druck = true"

Helikutscher
25.03.2006, 09:51
Krieg die Krise!!!! Muß noch mal nerven.
Hab den Code 1:1 übernommen. Jetzt erscheint beim Druckauftrag eine msg-Box und verlangt einen Parameter für "Druck". Wenn ich die Eingabe ignoriere wird natürlich ohne Daten gedruckt.

Arne Dieckmann
25.03.2006, 09:52
Das Feld "Druck" muss ebenfalls in der Datenherkunft des Berichtes vorhanden sein.

Helikutscher
25.03.2006, 10:03
Hallo Arne,

wieder mal kleine Ursache, große Wirkung. Jezt klappts tadellos!!! Vielen Dank für Deine Hilfe!!