Supportnet / Forum / Datenbanken
Aufruf Acces-Berichte aus Formular
Frage
Hallo zusammen,
Ich habe ein Problem und finde die Lösung nicht, wer kann mir helfen?
Ich habe verschiedene Access-Berichte mit Selektionskriterien, die ich bis anhin über Eingabefelder im Formular verbunden habe. Die Berichte habe ich über eine Schaltfläche pro Bericht aufgerufen. Mittlerweile habe ich 10 Schaltflächen (im steigen begriffen).
Meine Idee ist eine Auswahlliste aufgrund der vorhandenen Berichte im Formular zu erstellen und die Berichte dynamisch, d.h. nicht über fixe Schaltflächen aufzurufen. Auswahlliste und Bericht auswählen, dann Bericht öffnen.
Wer kann mir weiterhelfen, besten Dank
Urs
Antwort 1 von CAMEL
Benutze statt Buttons ein DropDown Menü
Antwort 2 von Urs
Hallo Camel,
Besten Dank für deinen Hinweis. Ich habe es mit einem Listenfeld versucht (meinst du das mit DropDown Menu?)
Mein Problem dabei ist aber, dass ich das Listenfeld automatisch füllen möchte aufgrund der vorhandenen Berichte, d.h. das Feld müsste den Berichtsnamen und den Berichtstext der in den Eigenschaften hinterlegt ist enthalten.
Jetzt kommt mir eine Idee, dies ist ja im Grunde nichts anderes als die Standard-Access-Ansicht der Berichte. Kann ich die irgendwie in mein Formular integrieren?
Weiss jemand rat? Besten Dank
Besten Dank für deinen Hinweis. Ich habe es mit einem Listenfeld versucht (meinst du das mit DropDown Menu?)
Mein Problem dabei ist aber, dass ich das Listenfeld automatisch füllen möchte aufgrund der vorhandenen Berichte, d.h. das Feld müsste den Berichtsnamen und den Berichtstext der in den Eigenschaften hinterlegt ist enthalten.
Jetzt kommt mir eine Idee, dies ist ja im Grunde nichts anderes als die Standard-Access-Ansicht der Berichte. Kann ich die irgendwie in mein Formular integrieren?
Weiss jemand rat? Besten Dank
Antwort 3 von Koebi
Hallo
Du kannst ein Listenfeld oder ein Kombinationsfeld (das mit dem DropDown) benutzen. Mit folgender Datensatzherkunft:
SELECT mSysObjects.Name
FROM mSysObjects
WHERE (((mSysObjects.Type)=5) AND ((mSysObjects.Flags)=0));
Gruss
Köbi
Du kannst ein Listenfeld oder ein Kombinationsfeld (das mit dem DropDown) benutzen. Mit folgender Datensatzherkunft:
SELECT mSysObjects.Name
FROM mSysObjects
WHERE (((mSysObjects.Type)=5) AND ((mSysObjects.Flags)=0));
Gruss
Köbi
Antwort 4 von Urs
Hallo Köbi,
Danke für deinen Hinweis auf die mSysObjects-Tabelle, er hat mich weiter gebracht. Mit Type=5 erscheinen die Queries. Ich habe Type=-32764 eingegen, so erscheinen die Reports.
Was ich noch nicht herausgefunden habe ist, wo der Beschreibungstext abgelegt wird. In der MSysObjects-Tabelle ist er nicht drin.
Wer weiss rat?
Gruss
Urs
Danke für deinen Hinweis auf die mSysObjects-Tabelle, er hat mich weiter gebracht. Mit Type=5 erscheinen die Queries. Ich habe Type=-32764 eingegen, so erscheinen die Reports.
Was ich noch nicht herausgefunden habe ist, wo der Beschreibungstext abgelegt wird. In der MSysObjects-Tabelle ist er nicht drin.
Wer weiss rat?
Gruss
Urs
Antwort 5 von Koebi
Hallo Urs
Entschuldigung, das war mein Fehler mit dem Type = 5.
Als einfachste Lösung fällt mir ein, die Namen der Berichte in eine eigene Tabelle zu schreiben (manuell) mit einem zuätzlichen Feld für die jeweilige Beschreibung. Dann kannst Du diese Tabelle als Datensatzherkunft für das Listen- oder Kombinationsfeld verwenden.
Nachteil: Es ist halt nicht dynamisch, und wenn Du einen weiteren Bericht erstellst, musst Du die Tabelle selbst nachführen.
Gruss
Köbi
Entschuldigung, das war mein Fehler mit dem Type = 5.
Als einfachste Lösung fällt mir ein, die Namen der Berichte in eine eigene Tabelle zu schreiben (manuell) mit einem zuätzlichen Feld für die jeweilige Beschreibung. Dann kannst Du diese Tabelle als Datensatzherkunft für das Listen- oder Kombinationsfeld verwenden.
Nachteil: Es ist halt nicht dynamisch, und wenn Du einen weiteren Bericht erstellst, musst Du die Tabelle selbst nachführen.
Gruss
Köbi

