Datensatz drucken

Hi,

ich habe eine Datenbank in Access und möchte einen ausgewählten Datensatz ausdrucken.
Ich wähle einen datensatz aus, klappt auch, dann benutze ich folgende Programmierung:

Private Sub Befehl269_Click()
On Error GoTo Err_Befehl237_Click
Me.AllowEdits = True
DoCmd.RunCommand acCmdSaveRecord
Me.AllowEdits = False

Dim stDocName As String

stDocName = „Baukosten-Zusammenstellung“
DoCmd.OpenReport stDocName, acViewPreview
DoEvents
On Error Resume Next
DoCmd.RunCommand acCmdPrint

Exit_Befehl237_Click:
Exit Sub

Err_Befehl237_Click:
MsgBox Err.Description
Resume Exit_Befehl237_Click

End Sub

Es werden jedoch alle datensätze ausgedruckt, ich möchte aber nur den ausgewählten drucken.

gruss Jürgen

Hallo Jürgen,

Makroprogrammierung in MS Access gehört nicht zu meinem Tagesgeschäft.

Nach meiner Einschätzung müsstest du folgendes machen um zum Ziel zukommen:

  1. Erstelle, falls noch nicht vorhanden eine Abfrage, die alle Datenfelder enthält, die im Report erscheinen sollen.
    Dabei müssen dann die DatensatzNr oder auch andere Felder, die den Datensatz eindeutig beschreiben, als Eingabe vorbereitet werden bzw. du muss hier einen Testwert eintragen so dass der Report „Futter“ bekommt.

  2. Mache falls nötig eine Kopie vom existierenden Report und ersetze die vorhandene Datenquelle durch die Abfrage.

  3. Passe dein Makro so an dass es in der Abfrage die Kriterien setzt, das heißt die Datensatz-Nr. bzw. die Kriterien des zur Zeit aktiven Datensatzes einträgt und dann den Report startet/druckt.

Beim Makro kann ich nicht nicht weiterhelfen ohne mich erst in die Materie einarbeiten zu müssen.

Gruß
Franz

Hallo Jürgen,

einfach mal OpenReport anklicken und die F1-Taste drücken. Es wird erklärt, wie die Openreport-Anweisung aufgebaut ist. Unter Anderem gibt es die where-Klausel, mit der man eine Auswahl treffen kann.

Gruß
JOGI

Guten Abend, sorry, da kann ich Dir leider nicht weiterhelfen,trotzdem viel Erfolg bei der weiteren Recherche

mfg

rog

Hallo Jürgen,

Du könntest z.B. im OpenReport Ereignis Deines Berichts einen Filter auf den gewünschten Datensatz Deines Recordsource setzten.

Dazu definierst Du z.B. eine Globale Variable in einem Modul
Global rptfilterDSID as long
In dieser Variable speicherst Du mit dem OnClick Ereignis die gerade angezeigte Datensatz ID.

Als Globale Variable kannst Du auf Diese dann im OpenReport-Ereignis zugreifen.

Versuchs einfach mal.

Gruß

Andreas

Moin,

Du verwendest
stDocName = „Baukosten-Zusammenstellung“

wobei ich annehme, daß es sich hier um einen Bericht handelt.

Lösung ist:
Als Datengrundlage des Berichts eine Abfrage zu verwenden, bei der die als Auswahlkriterium den aktuellen Datensatz des geöffneten Formulars verwendest.

Wenn es zum Beispiel ein eindeutiges Feld ID_BAUKOSTEN gibt, dann klickst Du in der Abfrage, die dem Bericht zugrunde liegt mit rechts in das Kriterienfeld und wählst „Aufbauen“. Dort wählst Du das Formular, daß gerade den aktuellen Datensatz hast aus und daraus das ID-Feld und dann wert und einfügen. Dort müsste dann so etwas wie Forms!!ID_Baukosten…value stehen.

Danach ollte der Bereicht nur den aktuellen Datensatz einthalten und kann gedruckt werden.

Gruß
Leo

Hallo Jürgen,

meine Lösung:

Private Sub Befehl269_Click()
On Error GoTo Err_Befehl237_Click
Me.AllowEdits = True
DoCmd.RunCommand acCmdSaveRecord
Me.AllowEdits = False

Dim stDocName As String
Dim Wert As Integer

Wert = Me.ID
stDocName = „Baukosten-Zusammenstellung“
DoCmd.OpenReport stDocName, acViewPreview , , " tabelle1.ID = " & Wert & ""
DoEvents
On Error Resume Next
DoCmd.RunCommand acCmdPrint

Exit_Befehl237_Click:
Exit Sub

Err_Befehl237_Click:
MsgBox Err.Description
Resume Exit_Befehl237_Click

End Sub

tabelle1.ID muss durch den Namen und dem Feld der Tabelle ersetzt werden, die ID muss im Formular vorhanden sein (egal ob sichtbar oder unsichtbar.

Gruß Hartmut

Hallo,

da muss ich passen

Frank Seiler