PDA

View Full Version : AS400 ODBC-Anmeldung von Access per VBA



Seiten : [1] 2

otto-mueller
05-12-03, 09:30
Hallo allerseits,

ich habe folgendes Problem:

Mein System:
- Access 2000
- ODBC-Verbindung zu AS/400-DB
- VBA
- AS/400

Eine Tabelle aus einer AS400-Bibliothek ist über ODBC-Verbindung in Access verknüpft.

Wie kann ich Benutzername/Kennwort für den Zugriff auf die ODBC-Verbindung per VBA-Code an AS400 senden?
Gibt es da vielleicht auch einen anderen Weg? Wenn ja, bitte um Hilfe, da ich von AS400 sehr wenig Ahnung habe.

Bitte um dringende Hilfe.

Vielen vielen Dank für eure Unterstützung.

Viele Grüße

Otto

Fuerchau
05-12-03, 09:35
In der Verbindungszeichenfolgen können "UID=XXX;PWD=YYY;" angegeben werden. Bedenke aber, dass diese Informationen im Klartext in Access eingesehen werden können.

otto-mueller
07-12-03, 22:48
Hallo,

vielen Dank für die schnelle Antwort.

Ich kenne mich mit AS/400 leider fast überhaupt nicht aus.

Man muß doch den DSN-Namen auch irgendwo in der Verbindungszeichenfolgen eintragen oder?

Kannst du mir vielleicht den Teil "Verbindungszeichenfolgen" in einem kleinen Beispiel deutlich machen?

Wäre dir sehr dankbar.

Vielen Dank

und Gruß

Otto

Fuerchau
08-12-03, 10:35
Wenn du in Access eine Tabelle verknüpfst, wird die Verbindungszeichenfolge in der Tabelle als Eigenschaft hinterlegt und ist leider nicht mehr änderbar.

- Verknüpfe eine Tabelle per ODBC mit der AS/400
- Öffne die Tabelle im Entwurfsmodus und ignoriere die Warnung
- Klicke in der Titelleiste des Entwurfsfenster mit der rechten Maustaste und gehe dann auf Eigenschaften

Dort siehst du dann die Verbindungszeichenfolge.

otto-mueller
24-05-04, 14:53
Hallo,

vielen Dank für die Antwort.

Tut mir leid, daß ich erst jetzt antworte, aber in der Zeit konnte ich das Programm nicht weiter bearbeiten.

Jetzt habe ich folgendes Problem:

Hier ein Teil meines Codes:

.........
.................
Dim db As DAO.Database
Dim SQLStr As String
Dim conn As New ADODB.Connection

conn.Open "Driver={Client Access ODBC Driver (32-bit)};" & _
"System=AS400;" & _
"Uid=BENUTZERNAME;" & _
"Pwd=KENNWORT"

Set db = CurrentDb
..................
............................
....................................
'Variablen werden vorher definiert!
SQLStr = "Insert Into Bibliothek_Tabelle Values ('" & LENAM & "', '" & LEVON & "', '" & LEBIS & "', '" & LEART & "');"

db.Execute SQLStr
......................
.................................

Obwohl ich in der Verbindungszeichenfolge "UID=XXX;PWD=YYY;" s. o. angegeben habe, fragt DB2 beim ausführen von db.Execute SQLStr nochmal nach Anmeldedaten nach. :o :confused:

Was mach ich denn falsch??

Dank nochmal für die Hilfe

Gruß,

Otto

Fuerchau
24-05-04, 15:56
War mein Fehler, statt "UID=" verwende "User=" !

Obwohl das nicht empfehlenswert ist.

otto-mueller
24-05-04, 17:16
Hallo,

Danke für die schnelle Antwort.


War mein Fehler, statt "UID=" verwende "User=" !

Obwohl das nicht empfehlenswert ist.

Wenn ich "User=Benutzername" verwende - also nur UID durch User ersetzt - der Benutzername ist gleichgeblieben!!! - dann bekomme ich die Fehlermeldung:

Laufzeitfehler '-2147217843 (80040e4d)': [IBM][Client Access ODBC-Treiber] Fehler bei Datenübertragungsverbindung. commrc=8015 - CWBSY1006 - Benutzer-ID ist ungültig, Passwort length=6, Prompt Mode = Never, System IP-Address = xx.xx.xxx.xxx

Den Benutzernamen habe ich wirklich nicht geändernt, aber trotzdem diese Fehlermeldung??

Hier nochmal meine Verbindung:

conn.Open "Driver={Client Access ODBC Driver (32-bit)}; System=AS400; User=Benutzername; Pwd=Kennwort"


Danke nochmal

Gruß
Otto

Fuerchau
24-05-04, 17:35
Genau das deutet darauf hin, dass der Benutzer auf der AS/400 nicht bekannt ist !
Als Benutzer-Id ist der max. 10-Stellige AS/400-Benutzer zu verwenden.

otto-mueller
24-05-04, 21:35
Hallo,


Genau das deutet darauf hin, dass der Benutzer auf der AS/400 nicht bekannt ist !
Als Benutzer-Id ist der max. 10-Stellige AS/400-Benutzer zu verwenden.

Bedeutet es, daß es zwei Benutzer für die Verbindung benötigt werden - eins auf der AS400 und eins in der DB2? Mein Benutzername, den ich verwende, ist 6-stellig. Das heißt es liegt nur auf der DB2??

Wie lege ich denn einen neuen Benutzer auf der AS400 an?

Danke nochmal

Gruß
Otto

Fuerchau
24-05-04, 21:47
Für die DB2/400 ist kein eigener Benutzer erforderlich. Normalerweise reicht die gleiche Anmeldung, die du auch in dem Anmeldebild verwendest.
Gib doch genau den User an, mit dem du dich auch sonst anmeldest.
Für ein AS/400-Profil wende dich an deinen Administrator.