View Full Version : AS400 ODBC-Anmeldung von Access per VBA
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
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
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
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
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
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.