PDA

View Full Version : MS Access Zugriff via ODBC auf iSeries Tabellen



Rico
18-03-05, 17:24
Hallo zusammen,

da Einsicht sprichwörtlich der erste Weg zur Besserung ist, muss ich wohl sagen, dass ich zu blöde bin, eine iSeries Tabelle via ODBC richtig in meine MS Access GUI einzubinden.

Ich habe über "Tabellen verknüpfen..." eine i5-Tabelle via ODBC angebunden. Ich kann mir die Inhalte auch wunderbar ansehen. Wenn ich dann Datensätze erfassen möchte geht dies auch noch relativ problemlos, allerdings nur, wenn ich vorher, beim Erstellen der Tabelle, einen Schlüssel auf die Tabelle gelegt habe. Wenn ich die Tabelle dann allerdings schließe und neu öffne steht in allen Felder immer nur "#Gelöscht", obwohl ich die Datensätze nicht gelöscht habe, was im übrigen auch nicht funktioniert. Wenn ich mir die Daten auf der i5 ansehe (z. B. per SQL) stehe immer noch alle Werte genauso da, wie ich sie in Access erfasst habe. Selbst bei einem Export der verknüpften Access-Tabelle als Excel- oder Textfile sind die Daten in der Exportdatei eingetragen.

Kennt irgendjemand da draussen dieses Problem, oder viel besser noch eine Lösung dafür? Ich wäre wirklich für jeden Hinweis dankbar. Ich bin wirklich am Verzweifeln. :confused:

Gruß Rico

PS: Vielleicht noch folgende Hinweise: Ich benutze
- Microsoft Access 2000 mit SP3
- iSeries Acces 5.3
- iSeries ODBC-Treiber (Version 10.00.03.00)
- i5 mit V5R3M0

Fuerchau
21-03-05, 07:49
Um mittels Access an einer Tabelle zu arbeiten, ist ein UNIQUE-Key erforderlich.
Access selbst arbeitet intern mit sog. "Bookmarks", was allerdings vom iSeries-ODBC-Treiber nicht unterstützt wird, es gibt ja auch keine direkte SQL-Funktion dafür.
Access prüft also bei der Verknüpfung, ob es für die angegebene Tabelle eine UNIQUE-Index gibt (ansonsten erscheint ein Fenster zur Auswahl der eindeutigen Felder). Ist dies der Fall, also jeder Satz ist über seinen Schlüssel EINDEUTIG identifizierbar, klappt auch die vollständge Bearbeitung der Tabelle über Access.

Rico
21-03-05, 09:43
Hallo Fuerchau,

danke für den Tipp. Jetzt habe ich es endlich. Habe in dem Zusammenhang auch gleich noch die Commitmentsteuerung auf *NONE gesetzt.

Gruß Rico