Fragensteller
Tabellenverknüpfung mit Oracle über ODBC

Frage
-
Hallo,
ich versuche eine Tabelle aus Oracle in Access zu verknüpfen. Dies mache ich über eine ODBC Verbindung. Sobald ich die Tabelle verknüpft habe und versuche diese dann in der Datenblattansicht zu öffnen, bekomme ich folgende Meldung:
"ODBC: Es können nicht alle Datensätze gesperrt werden."
Danach bekomme ich die nächste Meldung:
"Microsoft Access kann die Tabelle nicht in der Datenblattansicht öffnen".
Die Verbindung zu Oracle funktioniert, da ich die Tabelle herunterladen kann, ich sie aber mit einer Verknüpfung brauche. In der Entwurfsansicht kann ich auch keine Änderungen vornehmen, da dies bei Verknüpften Tabellen nicht möglich ist. Auf die Tabelle in Oracle habe ich leider nur Lesse zugriff. Meine Vermutung ist, das Oracle für leere Einträge einen NULL Eintrag macht und Access dadurch die Daten nicht anzeigen kann. Die Tabelle verfügt leider auch nicht über einen Primärschlüssel, das könnte vielleicht auch die Ursache sein.
Hoffe es kann mir wer einen Tipp geben wie ich mein Problem lösen kann.
Alle Antworten
-
Die Oracle-Tabelle benötigt einen Primary-Key, ansonsten kommt Access überhaupt nicht damit zurecht.
Wenn du die Tabelleninhalte nur zum Nachschlagen und nicht zum Bearbeiten benötigst, empfehle ich dir eine PASSTHRU-Abfrage zu erstellen, die auch Parameter für eine Where-Klausel erlaubt. -
Danke für deine Antwort. Es ist so, in den Tabellen werden Mitarbeiter erfasst die das Gebäude betreten haben. Diese Einträge werden ständig aktualisiert. Dies passiert in der Oracle Datenbank.
Ich benötige jetzt diese Spalten aus der Tabelle(also nicht die ganze Tabelle) um eine Anwesenheitsliste zu erstellen. Die Tabelle herunterladen dauert zu lange, deswegen wollte ich sie verknüpfen um so leichter an die Daten zu kommen. Die inhalte muss ich nicht direkt bearbeiten. Sie werden mit Abfragen nur sortiert.
Kannst du mir das mit diesem PASSTHRU vielleicht etwas genauer erklären, wenn es den für mein Problem geignet ist?
Danke
-
Du erstellst eine neue Abfrage als sog. "Passthru"-Abfrage.
In dieser definierst du ganz einfach deinen SQL mit Parametern:select * from OracleTable
where f1 = ? and F2 = ? ....Oracle erlaubt keine benannten Parameter, also where f1 = [f1] funktioniert nicht.
Per VBA-Code kannst du diese Abfrage dann ausfühen und der Datenquelle eines Formulars zuweisen.Gilt auch für neuere Access-Versionen:
https://support.microsoft.com/de-de/help/303968/how-to-create-an-sql-pass-through-query-in-access