Kann Access eine Abfrage einer Oracle machen?

Guten Tag,

ich habe eine oracle datenbank und möchte in access eine abfrage aus den daten der oracle machen. da ich keine programmiersprachen kenne würde ich es gerne in access machen da hier die visuelle darstellung ganz gut ist!

wär toll wenn mir jemand tipps geben kann!

Hallo,

ja das geht ohne Probleme. Du erstellt eine Access Datenbank und kannst diese dann entweder direkt mit der, als ODBC Datenquelle eingerichteten, Oracle verbinden oder nur die Daten importieren.

Als Tip: Probiere es lieber mit SQL Abfragen auf die Oracle ist nicht wirklich schwer.
(Im SQL Forum findest du auch freundliche Helfer :stuck_out_tongue: )
Ich persönlich kam mit dem grafischen Abfrageneditior nie klar. Das was ich wollte hatte ich in ein paar Sekunden per SQL geschrieben bekam es grafisch aber kaum oder garnicht hin.

MfG Dominik

hey dominik,

danke für deine antwort! ich würde gerne eine sql abfrage machen aber hierfür muss ich doch die struktur der datenbank kennen, oder? ich brauch z.b. aus der tabelle schweißpunktdaten den namen und aus der tabelle location die koordinaten … jetzt kann ich schon eine abfrage machen aber dazu muss ich doch die relations der tabellen wissen!!! und genau da ist das problemchen … :frowning:

ich schreib gerade meine bachelorarbeit über prozessreports und an diesem punkt hänge ich jetzt schon ein paar tage ohne das irgendeine variante die ich probiert habe funktioniert hat! depremierend! :frowning:

grüße
Bernd

Hallo Bernd,

kein Problem. Erstelle eine Accessdatenbank, klicke auf Datei, externe Daten, Tabellen verknüpfen. Wähle dort als Dateityp ODBC Databases aus, deine Datenbank, gib die Logon Credentials ein, wähle die Tabelle die du verknüpfen möchtest und die Spalten aus.

(Hast du die Oracle als ODBC Datenquelle überhaupt eingerichtet?)

Dann hast du sozusagen die Tabelle der Oracle in der AcessDB, aber vorsicht alle schreibenen Zugriffe werden auf der Oracle ausgeführt.
Natürlich nur wenn dein User mit dem du dich angemeldet hast die Rechte dafür hat.

Jetzt kannst du alle Abfragen kreieren die du magst.

MfG Dominik

hey dominik,

das habe ich schon gemacht gehabt aber ich bekomms nicht auf die reihe mit den abfragen. ich erklär mal mein vorgehen:

  • access öffnen
  • neue datenbank anlegen
  • datei
  • externe daten
  • tabellen verknüpfen
  • unter dateityp auf „ODBC Databases ()“
  • als Computerdatenquelle wähle ich meine „test-oracle“ und nun werden
    mir die Tabellen der Datenbank zur Auswahl angegeben (views, tables,
    weitere mir unbekannte tabellen …???). Welche sind relevant???
    Hier habe ich mal alles ausgewählt und verknüpft!
    Manche verknüpfen ohne probleme, bei manchen sagt er:
  • es gibt mehre Tabellen mit diesem Namen: geben Sie bitte den
    Eigentümer im Format ‚Eigentümer.Tabelle‘ an (OK/Hilfe)
  • Eindeutigen Datenbezeichner … hier kann ich integritäten zuord-
    nen (OK/Abbrechen)
  • dann gibts noch fehlermeldungen bei ganz wenig tabellen (OK/Hilfe)

nun gut, wenn ich das alles so durchgeklickt habe dann kann ich unter:

  • Extras - Optionen - Tabellen/Abfragen den Icon „SQL Server-kompatible Syntax - in dieser Datenbank benutzen“ aktivieren.

jetzt geh ich in: - Abfragen - Neu - Entwurfsansicht!!! hier kann ich ja tabellen auswählen! wähle ich jetzt die tabelle schweißpunkte und die tabelle location dann erscheinen diese mit einer Verbindungslinie zwischen den dick geschriebenen Object-Id´s. das ist ja gut und recht aber die Object-Id´s sind ja ganz unterschiedlich und ich bekomm natürlich leere abfragewerte wenn ich aus jeder tabelle jetzt ein attribut wähle da die ja nie eine übereinstimmung finden!

ui, war jetzt ein bisschen viel aber ich wollts so gut wie möglich erklären!!!

Freundliche Grüße
bernd

Hallo Bernd,

Access zeigt alle Tabellen die auf der Datenbank vorhanden sind an, auch die auf die dein User keinen Zugriff hat und Systemtabellen.

Ist die ObjectID Primärschlüssel auf beiden Tabellen?
Gibt es ForeignKey Constraints?

Probiers mal mit einer SQL Abfrage

SELECT * FROM schweisspunkte sch
LEFT OUTER JOIN location loc ON sch.objectid = loc.objectid

Damit bekommst du alle Felder aus schweisspunkte und dazu alle Felder aus location wo die location objectid gleich der schweisspunkte objectid ist. Da wo keine übereinstimmende objectid vorhanden ist bleiben die location Felder leer.

Ist nur ein Beispiel, du kannst alles mögliche Selektieren solang du eine Spalte hast die identische Daten enthält um die beiden Tabellen zu verknüpfen. Sowas wird meisten über Foreign Keys geregelt, d.h. eine Tabelle hat eine Spalte die den selben Inhalt hat wie der Primärschlüssel einer anderen Tabelle.

MfG Dominik