Supportnet / Forum / Datenbanken
Drucken des aktuellen Datensatz in einem Formular
Frage
Hallo!
Ich möchte den jeweils aktuell angezeigten Datensatz in einem Formular drucken. Ich habe dafür einen Button und mithilfe des Assistenten einen dazugehörigen Ereignis-Code erstellt.
Nun habe ich folgendes Problem: Wenn ich auf diesen Button klicke, werden alle Einträge ausgedruckt, nicht nur der aktuell angezeigte.
Ich habe die Hilfe konsultiert und gesucht und probiert, aber ich finde keine Lösung.
Hier ist der Code (das acSelection stammt von mir, hat aber keinen Unterschied gemacht):
Private Sub Drucken_Click()
On Error GoTo Err_Drucken_Click
Dim stDocName As String
Dim MyForm As Form
stDocName = "Adressenliste"
Set MyForm = Screen.ActiveForm
DoCmd.SelectObject acForm, stDocName, True
DoCmd.PrintOut acSelection
DoCmd.SelectObject acForm, MyForm.Name, False
Exit_Drucken_Click:
Exit Sub
Err_Drucken_Click:
MsgBox Err.Description
Resume Exit_Drucken_Click
End Sub
Ich muß auch zugeben, daß ich den VisualBasic Code und die verschiedenen Befehle in der Hilfe nicht ganz verstehe. Könnte mir bitte jemand etwas Erleuchtung bringen?
Danke und mfG
Schnoof
Antwort 1 von Phantom_Fies
In dem angegebenen Code selektierst du lediglich das aktuelle Formular, was keinen Sinn macht.
Es gibt folgende Möglichkeit:
Du markierst den auszudruckenden DS per Hand, und schreibst folgenden Code in das Click-Ereignis:
Im folgenden Dialog wählst du dann Markierte Datensätze aus.
Vielleicht weiß aber jemand anderes noch eine bessere Lösung.
Es gibt folgende Möglichkeit:
Du markierst den auszudruckenden DS per Hand, und schreibst folgenden Code in das Click-Ereignis:
SendKeys "^(p)", True
Im folgenden Dialog wählst du dann Markierte Datensätze aus.
Vielleicht weiß aber jemand anderes noch eine bessere Lösung.
Antwort 2 von oliverV
Hallo Schnoof,
ich gehe mal davon aus, das du in deinem Formular die Einzel-Formular-Ansicht gewählt hast und aus dem heraus den Bericht öffnen bzw. drucken willst.
Wenn dies der Fall ist, kannst du in der Datensatzherkunft deines Berichtes bei deinem Schlüsselfeld (Kunden-Nr. / Adress-Nr.) als Kriterium
Formulare![Formularname]![Kunden-Nr.] eingeben.
(Ersetze Formularname und Kunden-Nr. mit deinem Formularnamen bzw. Feldnamen)
Gruß
oliver
ich gehe mal davon aus, das du in deinem Formular die Einzel-Formular-Ansicht gewählt hast und aus dem heraus den Bericht öffnen bzw. drucken willst.
Wenn dies der Fall ist, kannst du in der Datensatzherkunft deines Berichtes bei deinem Schlüsselfeld (Kunden-Nr. / Adress-Nr.) als Kriterium
Formulare![Formularname]![Kunden-Nr.] eingeben.
(Ersetze Formularname und Kunden-Nr. mit deinem Formularnamen bzw. Feldnamen)
Gruß
oliver
Antwort 3 von Schnoof
Hallo Oliver,
ja, ich habe die Einzel-Formular-Ansicht gewählt, aber ich wollte eigentlich nicht den Schritt über den Bericht gehen. Da weiß ich nämlich nicht so recht, wie ich das überhaupt und letztendlich auch noch DAU-freundlich machen soll.
Aber ich versuch das mal.
Danke!
Schnoof
ja, ich habe die Einzel-Formular-Ansicht gewählt, aber ich wollte eigentlich nicht den Schritt über den Bericht gehen. Da weiß ich nämlich nicht so recht, wie ich das überhaupt und letztendlich auch noch DAU-freundlich machen soll.
Aber ich versuch das mal.
Danke!
Schnoof
Antwort 4 von Schnoof
Also, ich habe mich noch einmal probiert. Ich habe einen zweiten Button auf das Formular gepackt, und dort beim Assistenten 'Datensatz drucken' ausgewählt (das hatte ich vorher total übersehen).
Jetzt sieht der Code wie folgt aus:
Private Sub Drucken_Click()
On Error GoTo Err_Drucken2_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.PrintOut acSelection
Exit_Drucken2_Click:
Exit Sub
Err_Drucken2_Click:
MsgBox Err.Description
Resume Exit_Drucken2_Click
End Sub
Jetzt funktioniert's.
Bis denne!
Schnoof
Jetzt sieht der Code wie folgt aus:
Private Sub Drucken_Click()
On Error GoTo Err_Drucken2_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.PrintOut acSelection
Exit_Drucken2_Click:
Exit Sub
Err_Drucken2_Click:
MsgBox Err.Description
Resume Exit_Drucken2_Click
End Sub
Jetzt funktioniert's.
Bis denne!
Schnoof

