PDA

View Full Version : Zugriff auf iSeries/AS400 über Access



hoffi3d
23-03-17, 10:49
Hallo zusammen,

wir haben bei uns eine AS/400 / iSeries stehen.
Ich möchte nun via ODBC auf diverse Tabellen zugreifen.
Bisher habe ich hierfür immer eine Benutzer DSN über die Datenverbindungen angelegt und die komplette Tabelle eingebunden.

Nun habe ich aber gehört dass das auch komfortabler direkt aus dem Access herausgeht über eine Abfrage (PassThrough ??) und man dort auch ohne DSN Eintrag zugreifen kann.

Kann mir jemand sagen, was ich als SQL String hinterlegen müsste damit dies geht?
Mir reicht es wenn die Access Abfrage mit die OS/400 Tabelle wiedergibt.
Am besten natürlich mit Suchkriterien, aber das ist Schritt 2!

Fuerchau
23-03-17, 12:10
Nun, ohne ODBC-String gehts da nun auch nicht.
Sobald du die Abfrage als PathThru definiert hast, musst du per RechtsClick auf den Fenstertitel der Abrage das Eigenschaftsfenster öffnen.
Da findest du dann die Möglichkeit, den ODBC-String insgesamt einzugeben.
Da dies allerdings relativ komplex ist, kannst du da auch auf den Wizzard gehen und dir die Verbindungsfolge generieren lassen.
Alternativ kann man da natürtlich trotzdem "ODBC;DSN=MyDsn;" eintragen.
Schwierig wird es dabei allerdings mit Parameter-Abfragen.
Passthru-Abfragen lassen sich dann nicht so einfach an Formulare binden.

Dies ist dann aber grundsätzlich bei jeder Passthru-Abfrage durchzuführen (kann man ja kopieren).
Je nach Einstellung im iSeries-Navigator kann es dazu kommen, dass bei jeder Abfrage auch eine Anmeldung erforderlich wird.

Alternativ zu Abfrageobjekten kann man natürlich auch im Code seine Datenverbindungen und Abfragen native programmieren. Unter bestimmten Umständen sind dann auch Datenbindungen zulässig.

hoffi3d
23-03-17, 12:34
Hallo Fuerchau,

erstmal vielen vielen Dank für die Antwort!

Der ODBC-String ist ja auch ok. Nur die DSN möchte ich nicht füllen. Will das komplett umgehen.
Weiterer Grund für die Aktion ist, dass einige unserer Tabellen so groß sind, dass die im Access garnicht mehr verarbeitet werden können. Die Kriterien dort wollte ich individuell anpassen.
z.B. Auftragsdatum heute() - 60 Tage oder so.
Daher wäre ein vorheriger Filter traumhaft.
Nun habe ich den Wizzard benutzt, der schickt mich aber direkt wieder zu den Computerdatenquellen.
Was ich ja umgehen wollte.
Bin auch mit deiner Antwort ein klein wenig "überfordert" hast du evtl. eine Beispieldatei wo ich mir das mal ansehen kann?

Hintergrund ist auch, ich habe eine Exceldatei gesehen wo das ohne DSN funktioniert =>

Verbindungszeichenfolge

DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=SYSTEMXXX.COM;DBQ=QGPL DOPAAAL1/ADSTALC;DFTPKGLIB=QGPL;LANGUAGEID=ENU;PKG=QGPL/DEFAULT(IBM),2,0,1,0,2048;QRYSTGLMT=-1;CONNTYPE=2;SSL=;SIGNON=;Uid =XXXXX;

Fuerchau
23-03-17, 13:37
Nimm doch einfach die Beispiel-Folge und modifiziere sie passend.
Anschließend kopierst du diese dann in den Eigenschafts-Dialog:
ODBC;Verbindungsfolge

hoffi3d
23-03-17, 14:34
ah ok

da kommt aber jetzt


Reservierter Fehler (-7778); es gibt keine MEldung für diesen Fehler.

Fuerchau
23-03-17, 15:37
Ok, da kommen wir so nicht weiter.
Mach einfach folgendes (ich habe das mal nachvollzogen):

Rufe den Wizzard auf.
Bleibe bei Dateidatenquelle und erstelle eine neue Quelle.
Nach der Konfiguration deiner Einstellungen und speichern der DSN in einer Datei übernimmt der Wizzard die Verbindungsfolge.
Diese Datei-DSN kannst du dann überall hin mitnehmen solange der Pfad (ggf. identisch zu deiner MDB) verfügbar ist.
Leider ist diese Datei-DSN dann nicht mehr über den Wizzard änderbar, da der Standard-Wizzard dies nicht anbietet. Sie kann aber mit z.B. Notepad bearbeitet werden.

Für alle ODBC-Einstellungen musst du halt mal ein wenig googeln.

Weitere Alternative.
Erstelle z.B. auf dem Desktop eine Textdatei und ändere die Endung auf ".udl".
Dies funktionert nur, wenn du in den Explorereinstellungen die Einstellung "Ausblenden bekannte Dateiendungen" deaktivierst (ist generell sowieso besser).
Per Doppelclick auf die Datei kannst du eine Verbindungsfolge erstellen.
Die .UDL kannst du mit Notepad öffnen und ab Extended properties steht deine Verbindungsfolge.
Leider lässt sich diese auch nicht per Wizzard ändern, das hat Microsoft wohl verschlafen.

hoffi3d
28-03-17, 14:03
hallo,

vielen Dank für deine Antwort, dass muss ich mir mal ansehen! ;)