PDA

View Full Version : Access über ODBC - Sätze in verknüpfte Tabellen einfügen



cassi
22-11-06, 14:03
Hallo!

Ich habe diverse Tabellen von der AS400 (V5R3) verknüpft, frage bestimmte Sätze ab und möchte diese dann mit einer anderen Nummer im Feld MANDANT in die Dateien einfügen. Beim Ausführen einiger Anfügeabfragen kommen folgende Fehlermeldungen:

1.
ODBC: Einfügen in einer verknüpften Tabelle 'xxx' fehlgeschlagen.
[IBM][iSeries Access ODBC-Treiber]Daten, die Nullzeichen (x00) enthalten, können nicht umgesetzt werden.
(#30126)

2.
ODBC: Einfügen in einer verknüften Tabelle 'xxx' fehlgeschlagen.
[IBM][iSeries Access ODBC-Treiber][DB2 UDB]SQL0804 - SQLDA ungültig. (#-804)

Hat jemand eine Idee, woran das liegen könnte?

Gruß
Cassi

Fuerchau
23-11-06, 18:46
Wenn die AS/400-Tabelle für das Feld kein NULL zulässt, ist ein Update aus Access mit leeren Zeichenfolgen nicht möglich, da diese meist als NULL ausgegeben werden.
In den Feldeigenschaften von Access muss "Leere Zeichenfolge als NULL" ausgeschaltet werden.

cassi
24-11-06, 07:19
Sorry, aber wo genau in Access (2000) muß die "Leere Zeichenfolge als Null" ausgeschaltet werden?

Ich finde in den Feldeingenschaften der Abfrage nichts in der Art und in den Text-Feldern der verknüpften Tabellen (die ich ja sowieso nicht in Access ändern kann) steht "leere Zeichenfolge"=J

Die 2. Fehlermeldung kommt allerdings bei weitaus mehr Anfügeabfragen - Hat jemand noch eine Idee weshalb diese erscheint?

Kann ich das Ganze auch anders lösen? Evtl. so:
Datei mit CPYF kopieren
Feld MANDANT in kopierter Datei bei den entspr. Sätzen mit SQL ändern
Geänderte Sätze mit CPYF, *ADD, INCCHAR an die Originaldatei anhängen
Kopierte Datei mit DLTF löschen?

Allerdings geht es um etliche Dateien und das sieht leider nach sehr viel Tipparbeit aus...

Gruß
Cassi

Fuerchau
24-11-06, 07:41
Zu 1:
Nicht in der Abfrage sondern in der Tabelle stehen die Feldeigenschaften.
Zwar wird eine Warnung angegeben, doch einige Eigenschaften sind änderbar.
Ansonsten eben per Programm (VBA) das Einfügen leerer Zeichenfolgen verhindern (mindestens ein Leerzeichen oder 0).

Zu 2:
Ggf. enthält die Tabelle Felder, die von Access nicht unterstützt werden (e.g. Packed).
In diesem Fall ist es besser eine Anfüge-Abfrage zu erstellen.

Generell ist es bei der AS/400 besser, bei zu schreibenden Tabellen mit Update-/Lösch-/ und Einfüge-Abfragen zu arbeiten.
Die Automatismen von Access haben da halt Schwierigkeiten mit den Dateiformaten (Feldlänge, Typ, NULL-Behandlung usw.).