PDA

View Full Version : Microsoft Access als Frontend für db2?



Seiten : [1] 2

juergenkemeter
19-10-04, 09:34
Hallo,
ist es möglich, in Access Formulare, Abfragen u.ä. zu erstellen, die dann auf eine SQL - Datenbank in db2 von IBM zugreifen?

VG,
Jürgen

Fuerchau
19-10-04, 10:20
Aber klar.
Dazu gibt es genügend Beispiele im Forum, aber:

Über "Tabelle->Verknüpfen->ODBC" richtest du eine ODBC-Quelle mit dem CA-Treiber ein und kannst dann auf alle Tabellen zugreifen.

Es gibt allerdings ein paar Einschränkungen:
PF mit maximal 31 LF's, ansonsten verknüpfe mit der LF !
Max. 255 Felder in einer Tabelle !

Access möchte zusätzlich die Definition eines UNIQUE-Schlüssels. Normalerweise ermittelt er ihn selber, aber wenn er das nicht kann wird eine Feldliste angeboten.
In diesem Fall lege lieber einen UNIQUE-Schlüssel auf die DB, da Access damit sonst nicht zurechtkommt.

Default ist im ODBC-Treiber Commit auf *CHG gesetzt. Wenn deine DB aber nicht journalisiert ist, setzte Commit auf *NONE (Register Server->Erweitert).

Probleme bereiten ggf. Abfragen auf Abfragen (Performance) und Verknüpfungen mit lokalen Tabellen.
In solchen Fällen lohnen sich dann SQLPASSTHRU-Abfragen.

Ansonsten gehts ohne weitere Probleme.

juergenkemeter
19-10-04, 10:34
Hallo Fuerchau,
danke für deine Tipps!
Da ich leider noch kein AS/400-bzw. Access-Profi bin, habe ich Fragen zu deinem Beitrag:

- wo genau richte ich in Access den ODBC-Treiber ein (Access97)?
- Was heissen die Abkürzungen CA-Treiber, PF, LF
- Muss ich in DB2 einen "UNIQUE Schluessel" definieren oder in DB2;
wie mache ich das?
- was meinst du damit, dass Verknüpfungen auf lokale Tabellen
Probleme bereiten? Die DB2-Tabellen sind doch auf einem Server.


Hoffe dich nicht mit meinen Anfängerfragen zu nerven ;)

Jürgen

Fuerchau
19-10-04, 10:49
Welche Access-Vesion ist letztlich egal.
Suche mal hier im Forum nach ACCESS und ODBC. Da sind verschiedene Beispiele erklärt.

CA=ClientAccess (jetzt auch iSeriesAccess)
PF=Physical File
LF=Logical File

Diese Begriffe spielen mit der DB2/400 eine Rolle.

Bei DB2 gibts allerdings noch verschiedene Varianten. Für Zugriffe auf andere Host's benötigst du DB2/Connect.
Dann gibts noch DB2-Private (ganz umsonst) mit eigenen Triebern und Zugriffen.
usw.
usw.
usw.
:

Dies würde das Forum hier sprengen.

Hier gehts ausschließlich um AS/400->iSeries->i5

juergenkemeter
26-10-04, 09:25
Hallo,
ist dann Access mit DB2 im Hintergrund netzwerkfähig?
Muss auf jedem Klienten-PC Access und der ODBC-Treiber installiert sein?

VG,
Jürgen

Fuerchau
26-10-04, 10:39
Jeder PC, der Daten per ODBC abruft, benötigt einen ODBC-Treiber. Access ist nicht so intelligent, dass, wenn der Backend auf einem Server liegt, verknüpfte Tabellen über den Server abgefragt werden.
Access wird ja schließlich auch auf jedem PC benötigt. Wenn Access nicht selber vorhanden ist, benötigt man mindestens die Access-Runtime auf jedem PC.

Anders siehts da schon mit echten DB's aus (SQL-Server, Oracel, usw.). Dies sind ja Server und manche davon unterstützen auch ODBC-Tabellen, so dass diese auf dem Server verknüpft und auch abgerufen werden.

RobertPic
28-10-04, 16:40
@juergenkemeter

Ich wäre allerdings vorsichtig Access mit verknüpften DB2-Dateien auf viele Benutzer bzw. große Daten loszulassen.

Access arbeitet im Normalfall nicht besonders effektiv mit fremden Datenbanken. Aber solange die Datenmengen nicht so groß sind, sollte das nicht dramatisch auffallen.

Z.b. Reports für kleinere Dateien sollten kein Problem darstellen.

Für grössere Aufgaben darf man die Datei nicht verknüpfen, sondern muss mit SQL-Anweisungen, am besten SQL-Procudures arbeiten.

LG Rob

Fuerchau
29-10-04, 07:43
@Robert

Das ist so nicht ganz richtig.
Für Access als Frontend zur AS/400 gilt das gleiche, wie mit einem SQLRPG/LE-Programm. Sind genügend Zugriffspfade vorhanden, ist das genauso performant wie native auf der AS/400.
Bei Dialog-Anwendungen ist noch der Vorteil, dass die Batch-CPW in Anspruch genommen wird.
Es kommt mitunter sogar zu Entlastungen der AS/400, da ja die reine Rechenlogik in das Frontend verlagert wird und sich die AS nur noch um DB-Zugriffe kümmern muss.

Sicherlich sollte man keine Batchanwendungen in Access realisieren wenn große Datenmengen verändert werden.
Reine Reports lassen sich mit Access durchaus eleganter lösen.

Also wie immer:
Es kommt auf das Anwendungsdesign an um performante Lösungen zu bekommen !

juergenkemeter
29-10-04, 08:08
Hallo,
was versteht man unter "Batch-Anwendungen"?

mfg
Jürgen

Fuerchau
29-10-04, 09:39
Dies sind Programme, die ohne jeglichen Bedienereingriff arbeiten (auch Hintergrundprogramme).