Hallo,
ich habe folgendes Problem: Ich verwalte in einer DB diverse Events. Zu jedem Event gibt es mehrere mögliche Berichte. Diese kann ich über eine Schaltfläche mit einem Klick alle zusammen ausdrucken. Nicht immer sind alle Berichte für ein Event nötig. Ist es möglich, dass ich Kontrollkästchen in der Tabelle mit den Events anlege und nur die ausgewählten Berichte gedruckt werden? Wäre toll, wenn Ihr da eine Idee hättet. Und vielen Dank schonmal im Voraus.
Du kannst beim Öffnen des Berichts angeben, welche Datensätze gedruckt werden sollen, falls das Deine Fragestellung trifft:
DoCmd.OpenReport "DeinBericht", acViewPreview, , "DeinJa/NeinFeld"
Hallo,
wenn es sich um einzelne und voneinander unterschiedliche Berichte handelt, könnten die zu einem Event gehörenden Berichte (Berichtsnamen) in einer Tabelle einschließlich der Event-ID hinterlegt werden.
Über ein Kombis (für die Event-Auswahl) werden die zum Event gehörenden Berichtsnamen in einem Listenfeld aufgelistet. Mittels Mehrfachauswahl der Listenfeld-Einträge können dann die markierten Berichte gedruckt werden.
Zuerst mal vielen Dank für die schnellen Antworten.
@Maxel: das ist leider nicht das, wonach ich suche, aber trotzdem vielen Dank.
@DF6GL: Das klingt doch schon mal ganz gut. Ich habe jetzt eine Tabelle, in der die Berichtsnamen nebst Event-Nr. gesammelt werden. Ich bekomme diese Berichtsnamen auch in ein Listenfeld. Aber nun hänge ich. Mehrfachselektion hab ich noch nie gemacht. Also was sind nun die weiteren Schritte?
@Carman0103
Suche in der OH den Begriff "ItemsSelected" (Eigenschaft des Listbox-
Controls). Das dort gezeigte Beispiel solltest du auf deine Bedürfnisse
umschreiben können.
gruss ekkehard
Hallo und vielen Dank für den Hinweis. Leider bin ich bei VBA nicht wirklich fit. Ich komme irgendwie nicht weiter.
Hallo,
lad die Db mal hier hoch, komprimiert/repariert und gezippt...
@carman0103
Eigentlich solltest du es mit dem Beispiel in der OH auch selber hinbekommen
Private Sub cmdPrintSelectedReports_Click()
'das ist ein Button neben/über/unter dem Listfeld
Dim sRepName As String
Dim vItem As Variant
With Me.DeineListe ' Name anpassen
For Each vItem In .ItemsSelected
sRepName = .Column(1, vItem) '1 ist die Spalte mit dem Reportnamen (s.u.), vItem die "ZeilenID" aus der Auflistung ItemsSelected
DoCmd.OpenReport sRepName, ... 'die weiteren Parameter kannst nur du bestimmen
Next
End With
End Sub
Aufbau Listenfeld: 2 Spalten -> RepID, RepName
Spaltenbreiten: 0cm;5cm
gebundene Spalte: 1
Mehrfachauswahl: erweitert
gruss ekkehard
P.S.: wenn du bei anderen Listfeldern mal den Wert aus der gebundenen
Spalte benötigst, lautet die Zeile zum Auslesen einfach
lVar = .ItemData(vItem)
Hallo zusammen,
vielen Dank für Eure Hilfe. Mit viel Geduld habe ich es jetzt hinbekommen.