Hallo,
es funktioniert folgendermaßen:
Im Formular ein Kombinationsfeld oder ein Listenfeld einfügen und dies mit folgenden Eigenschaften belegen:
Name: BerichtName
Herkunftstyp: Wertliste
Datensatzherkunft: „Bericht1“;„Bericht2“;„Bericht3“
(also Namen der Berichte in Anführungszeichen mit Semikolon getrennt
Gebundene Spalte: 1
Nur Listeneinträge: Ja
Standartwert: Null
anschließend eine Schaltfläche mit folgenden Eigenschaften einfügen:
Name: AufrufBericht
Caption: Bericht öffnen
Beim Klicken: [Ereignisprozedur]
als Ereignisprozedur folgenden VBA-Code einfügen:
Private Sub AufrufBericht\_Click()
If IsNull(Me!BerichtName) Then
MsgBox "Bitte erst Bericht auswählen!"
Exit Sub
End If
On Error Resume Next
DoCmd.OpenReport Me!BerichtName, acViewPreview
If Err.Number = 2103 Then MsgBox "Bericht unbekannt"
on error goto 0
End Sub
Alternativen:
ohne Schaltfläche auf Änderung des Kombifeldes (BerichtName_Change)
oder auf Doppelklick im Listenfeld (BerichtName_DblClick) reagieren
dazu den o.g. Code in die entsprechende Ereignisprozedur einfügen
Ausbaumöglichkeiten:
das Kombi-/Listenfeld holt sich die Berichtnamen selbst (sofern alle eingerichteten Berichte aufruffähig sein sollen),
die Berichtnamen werden in einer Tabelle verwaltet und werden von dort in das Kombi-/Listenfeld eingelesen,
Hoffe Du siehts durch und es klappt alles.
Gruß tester
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]