DB Zugriff durch einen Link mit Datumsabfrage
Hallo Gemeinde, ich bin ein absoluter Anfänger in Access. Darum habt mit mir gedult und gebt eure antworten bittte dementsprechend Anfängergerecht. Vielen Dank schon mal.
Zuersteinmal:
Ich habe in Access eine Abfrage erstellt, die bei Ausführung per ODBC auf eine Oracle-Datenbank zugreift.
Bei der Abfrage werden auf verschiedene Daten zugegriffen, wie auch das Datum.
Zu meiner Frage:
Wie schaffe ich es durch z.B. einem Link auf einer HTML-Seite im Hintergrund eine Access-Abfrage zu starten mit vorheriger Datumseingrenzung (zum Beispiel 10.01.2008 bis 16.01.2008) und das Ergebnis in einem Excel-Sheet ausgeben. Am besten wäre es noch, wenn ich es in einem vorgefertigten Excelsheet ausgeben könnte, das schon diverse Summen etc. bildet.
Ist mein vorhaben überhaupt möglich. Oder gibt es irgendwelche Alternativen?
Vielen Dank
Zuersteinmal:
Ich habe in Access eine Abfrage erstellt, die bei Ausführung per ODBC auf eine Oracle-Datenbank zugreift.
Bei der Abfrage werden auf verschiedene Daten zugegriffen, wie auch das Datum.
Zu meiner Frage:
Wie schaffe ich es durch z.B. einem Link auf einer HTML-Seite im Hintergrund eine Access-Abfrage zu starten mit vorheriger Datumseingrenzung (zum Beispiel 10.01.2008 bis 16.01.2008) und das Ergebnis in einem Excel-Sheet ausgeben. Am besten wäre es noch, wenn ich es in einem vorgefertigten Excelsheet ausgeben könnte, das schon diverse Summen etc. bildet.
Ist mein vorhaben überhaupt möglich. Oder gibt es irgendwelche Alternativen?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78824
Url: https://administrator.de/contentid/78824
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
5 Kommentare
Neuester Kommentar
Moin starter,
ein bisschen stehen mir auch die Haare senkrecht bei dem Teil des Plans, den wir bisher kennen.
Nochmal langsam, damit wir eine ähnliche Zielvorstellung bekommen:
Die Abfrage der Oracle-DB kann jedenfalls nur von einem Client erfolgen, der auch die Rechte (und die ODBC-Verbindung) hat. Und nur von dort können ggf. auch die Daten des Resultsets weitergereicht werden (an Access, an Excel, an andere Clients,...).
Bitte deshalb noch mal kurz das Szenario schildern.
Grüße
Biber
ein bisschen stehen mir auch die Haare senkrecht bei dem Teil des Plans, den wir bisher kennen.
Nochmal langsam, damit wir eine ähnliche Zielvorstellung bekommen:
- es gibt offensichtlich irgendwo einen Oracle-DBServer, mit dem Du Dich als UserX/PasswordY über ODBC connecten kannst. Dieser User hat dort auch SELECT-Rechte auf mindestens eine Tabelle. Soweit noch richtig?
- Kleines erstes Ziel ist dann, eine Abfrage als UserX loszuschiessen, die nur einen schmaleren Resultset zurückerwartet statt der ganzen Tabelle?
- und die einschränkenden Kriterien/die Where-Bedingung soll dynamisch gestaltet werden mit zwei Parametern zur Laufzeit (VON-Datum, BIS-Datum)?
- und nun wirds windig: WTF hat nun M$-Access damit zu tun?
- bist Du der einzige Benutzer oder willst Du diese Parameter-Abfrage-Möglichkeit vielen anderen (an anderen Rechnern) geben können?
- and again, WTF hat Excel dann auch noch zu tun damit??
Die Abfrage der Oracle-DB kann jedenfalls nur von einem Client erfolgen, der auch die Rechte (und die ODBC-Verbindung) hat. Und nur von dort können ggf. auch die Daten des Resultsets weitergereicht werden (an Access, an Excel, an andere Clients,...).
Bitte deshalb noch mal kurz das Szenario schildern.
Grüße
Biber
Moin starter,
klassischerweise wäre die Lösung für eine derartige Aufgabenstellung die Bereitstellung einer STP (Stored Procedure) auf dem Oracle Server.
Ist nichts weiter als eine aufrufbare Funktion, die definierte Inputparameter, definierte Returnwerte und z.B. auch einen Resultset hat.
Da innerhalb dieser STP klar definiert ist, mit welchen SELECTs auf welche Tabellen zugegriffen können soll, kann nach Prüfung und Freigabe dann diese STP im Extremfalll öffentlich (PUBLIC) bereitgestellt werden, d.h. diese Abfrage kann dann auch von Benutzern genutzt werden, die nicht jeweils einzeln für die darunterliegenden tabellen berechtigt sind. (Diese müssen ja nicht einmal mehr wissen, dass es Tabellen namens XY gibt - sie rufen ja nur eine Funktion auf).
Ich würde an Deiner Stelle noch mal Euren Oracle-DBA auf diese Strategie ansprechen - eine STP mit zwei IN-Parametern, ein paar formalen Plausiprüfungen und einem Resultset/Cursor ist schnell zusammengeschrotet. Und kann danach in eine DAU-sichere GUI verpackt werden.
Bzw. IMHO sollte es auch möglich sein, diese STP über (Excel's) VBA aufzurufen.
Grüße
Biber
klassischerweise wäre die Lösung für eine derartige Aufgabenstellung die Bereitstellung einer STP (Stored Procedure) auf dem Oracle Server.
Ist nichts weiter als eine aufrufbare Funktion, die definierte Inputparameter, definierte Returnwerte und z.B. auch einen Resultset hat.
Da innerhalb dieser STP klar definiert ist, mit welchen SELECTs auf welche Tabellen zugegriffen können soll, kann nach Prüfung und Freigabe dann diese STP im Extremfalll öffentlich (PUBLIC) bereitgestellt werden, d.h. diese Abfrage kann dann auch von Benutzern genutzt werden, die nicht jeweils einzeln für die darunterliegenden tabellen berechtigt sind. (Diese müssen ja nicht einmal mehr wissen, dass es Tabellen namens XY gibt - sie rufen ja nur eine Funktion auf).
Ich würde an Deiner Stelle noch mal Euren Oracle-DBA auf diese Strategie ansprechen - eine STP mit zwei IN-Parametern, ein paar formalen Plausiprüfungen und einem Resultset/Cursor ist schnell zusammengeschrotet. Und kann danach in eine DAU-sichere GUI verpackt werden.
Bzw. IMHO sollte es auch möglich sein, diese STP über (Excel's) VBA aufzurufen.
Grüße
Biber