Anmelden

View Full Version : MS-Access Zugriff auf die DB2



Armin
07-05-12, 07:30
Hallo Wissende,
ich nutze Access 2003 als Anwendungsoberfläche. Die AS400 mit V7.1 ist über ODBC angebunden. Nun zu meinem Problem:
Alles funktioniert soweit einwandfrei. Auch die Geschwindigkeit ist hervorragend. Nun öffnet ein User das Editierfenster und lässt es länger als 1/2 h offen. In diesem Fenster gibt es Comboboxen, in denen aus Stammdateien Auswahlmöglichkeiten angeboten werden. Aus mir unerklärlichen Gründen verlieren diese Boxen nach einer gewissen Zeit plötzlich Ihren zugeordneten Wert. Der User versucht das Fenster zu schließen und die Plausibilitätsprüfung spricht an, da die Zwangsfelder nicht befüllt sind. Wie gesagt, dieses Problem tritt erst nach ca. 30 Min. Stillstand im geöffneten Fenster auf!
Im ODBC-Treiber ist in den erweiterten Leistungsoptionen bereits der Haken bei "Abfragezeitlimit zulassen" entfernt.

Und noch eine zweite Frage:
Was geschieht wenn 2 User den gleichen Datensatz editieren und verändert zurückschreiben?

Danke für eure Hilfe ...

Fuerchau
07-05-12, 09:09
Das Abfragezeitlimit hat damit nichts zu tun, dies wirkt nur während der Abfrage an sich.
Mir ist auch kein weiterer Timer bekannt, der nach 30 Minuten die Verbindung trennt o.ä.
Das scheint eher ein reines Access-Problem zu sein.
Da du sagst, dass die Comboboxen ihren Wert verlieren, scheint Access da irgendwas zu treiben.
Ggf. wird auch ein Ereignis ausgelöst, dass der aktuelle Datensatz geändert wurde und nicht mehr mit den angezeigten Werten übereinstimmt.

Was den konkurierenden Update angeht, so löst das Access auf etwas andere Art.
Wenn du auf einem Recordset den Update durchführst bzw. dies automatisch ausgelöst wird, kannst du über die Filter-Eigenschaft (adFilterError) feststellen, welche Sätze nicht geändert wurden und dem Bediener entsprechende Hinweise zu Korrektur anbieten.
Im Formular gibt es soweit ich weiß auch ein Error-Ereignis.

Wie die Lösung des Konfliktes dann aussehen soll, musst du halt mit deiner Anwendung abstimmen.

Hintergrund:
Ein Update wird bai Access bzgl. SQL so aufgelöst:

update mytable
set feld1=neu1, Feld2=neu2 ...
where feld1<>alt1 and feld2<>alt2 ...

Wie du siehst, wird der Update eben nur durchgeführt, wenn die alten Daten noch unverändert sind.

Armin
07-05-12, 10:30
Danke erst mal für die Nachricht.
Ich werde diesen Fall im Accessforum anfragen.