starter
Goto Top

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

Content-ID: 78824

Url: https://administrator.de/contentid/78824

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

Netzheimer
Netzheimer 22.01.2008 um 15:04:11 Uhr
Goto Top
Um über HTML abzufragen sollte man PHP und MySQL oder ähnliches beherrschen. Das ganze ist für einen Anfänger eh schon sehr schwierig. Wie siehts aus mit den persönlichen Voraussetzungen / Kenntnissen?
starter
starter 22.01.2008 um 17:10:04 Uhr
Goto Top
Hmm ja ein wenig SQL geht schon. Aber ich habe diese Abfrage mit Access gemacht, da mir die SQL-Abfrage nicht so recht gelingen wollte. Ich bin nun froh, dass ich ein passables Ergebnis in Access bekomme.
O.K. gut, lassen wir HTML bzw. PHP und vba mit sql etc aus dem spiel.
Wie bekomme ich es hin, dass ein Benutzer (meinetwegen mit Access auf dem Arbeitsplatz, aber 0,0 % Kenntnis) eine Maske öffnen kann, den gewünschten Zeitraum eingeben kann und auf "Generrieren" klickt. Nun sollte die Access-Abfrage starten und die Ausgabe eben nicht in
Access kommen, sondern in Excel. (Am liebsten in ein bereits vorhandenes Excel-Blatt -- dies ist dann so vorbereitet, dass aus den Werten Grafiken erzeugt werden.)

Dies müsste doch so gehen, oder?
Vielen Dank schon einmal.
Biber
Biber 22.01.2008 um 21:18:55 Uhr
Goto Top
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:

  • 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
starter
starter 23.01.2008 um 08:41:19 Uhr
Goto Top
Hallo Biber,

ja, du liegst hier gar nicht so schlecht.

- ORACLE 9.2 per ODBC mit User/Password
- ich greife auf 2 verknüpfte Tabellen zu und möchte jeweils nur ein paar Felder auslesen
bis hier her funktioniert es einwandfrei

- es soll ein mitarbeiter von seinem PC die Abfrage starten können.
- der Mitarbeiter soll in der Where-Bedingung Von-Datum, Bis-Datum eingeben können
- das Ergebnis soll in einer vorhandenen Excel-Tabelle geöffnet/gespeichert werden


Da der Mitarbeiter keine Ahnung von Access hat, sollte er an der Abfrage auch nichts verändern können. Am besten nur die Möglichkeit das Datum einzugeben.

Danke
Biber
Biber 23.01.2008 um 09:41:14 Uhr
Goto Top
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