-
AS400 Kennwort mit VBA prüfen
Ich habe in einem VBA verschiedene SQL's und will nicht bei jeder Verbindung mit der AS400 meinen Benutzer und das Kennwort eingeben. Wie kann ich in VB das ganze prüfen und nur einmal eingeben. Ich habe eine Routine erstellt wenn aber das Kennwort falsch erfaßt wurde, muß dieses immer wieder neu bei jeder SQL-Verbindung eingegeben werden. Ich möchte Benutzer und Kennwort auf der AS400 prüfen und wenn diese falsch sind nur einen Fehlercode von der AS400 erhalten. Es soll dort nicht korrigiert werden dürfen.
Hier die Source
Private Sub cmdOK_Click()
Dim system As New cwbx.AS400System
system.Define "xxxxxxxx"
system.UserId = tbBenutzer
system.Password = tbKennwort
system.IPAddress = "nn.nn.nn.nn"
On Error GoTo weiter
system.Connect (cwbcoServiceODBC)
weiter:
If (system.IsConnected(cwbcoServiceODBC)) Then
Else
MsgBox "Fehler: Benutzername oder Kennwort falsch. Programmende"
Application.Quit
End If
Const CN_STR = "ODBC;Driver=iSeries Access ODBC Driver;SYSTEM=system.IPAddress ;DefaultLibrari;UID="
Dim sSQL1, sEOF1 As String
Dim cnADO1 As DAO.Connection
Dim rsDaten1 As DAO.Recordset
Dim wrkODBC1 As DAO.Workspace
Dim iPos2, iPos3 As Integer
Dim Firmen(99) As String
Dim Firmentext(99) As String
sSQL1 = "select fifirm, fiktad, fiortn" & _
" from cmdlib.ufirmp " & _
" order by fifirm, fiortn asc "
Set wrkODBC1 = DAO.CreateWorkspace("IBM/AS400", "", "", dbUseODBC)
Set cnADO1 = wrkODBC1.OpenConnection("", dbDriverCompleteRequired, False, CN_STR & system.UserId & "; Pwd =" & tbKennwort)
Set rsDaten1 = cnADO1.Database.OpenRecordset(sSQL1, dbOpenDynamic)
rsDaten1.MoveFirst
iPos3 = 0
sEOF1 = ""
While Not rsDaten1.EOF
FrmAuswahl.lbFirma.AddItem (rsDaten1.Fields("fifirm") & " " & rsDaten1.Fields("fiktad").Value)
Firmen(iPos3) = rsDaten1.Fields("fifirm").Value
Firmentext(iPos3) = (rsDaten1.Fields("fifirm") & " " & rsDaten1.Fields("fiktad").Value)
iPos3 = iPos3 + 1
rsDaten1.MoveNext
Wend
rsDaten1.Close
FrmAuswahl.Show
End Sub
-
Ersetze
dbDriverCompleteRequired
durch
dbDriverPromptNever (oder ähnlich)
dann kommt kein Anmeldefenster und User/PWD muss in der Verbindungsfolge mitgegeben werden.
Sind Benutzer/Kennwort falsch, schlägt der Open der Verbindung fehl.
-
Vielen Dank für die schnelle Antwort, leider habe ich auch hier die Anmeldemaske von der AS400 wenn ein falscher Benutzer oder das Kennwort nicht korrekt ist.
Besteht die Möglichkeit, zu prüfen, ist die Anmeldung nicht OK, dann erhalte ich einen Fehlercode in einer Variablen
Vielen Dank nochmals
-
Hallo,
für solche Zwecke hab ich für die Methode "Workbook.Open" eine kleine UserForm als Anmeldefenster erstellt, in die der Benutzer seinen Loginnamen und Kennwort eingeben muß.
Damit erstelle ich dann folgendermaßen eine ADO-Connection:
Set as400 = New ADODB.Connection
as400.Open "Driver=iSeries Access ODBC Driver;CONNTYPE=2;TRANSLATE=1;SYSTEM=ISERIES;UID=" & user & ";PWD=" & password...
Das Objekt "as400" verwende ich als globale Variable, so dass ich es je nach Bedarf benutzen kann.
Gruß,
KM
-
Vielen Dank KM,
aber auch hier erhalte ich jedesmal eine Anmedlung, wenn diese beim ersten mal fehlerhaft war.
-
Hallo Pauli,
ich hab jetzt noch nicht so recht verstanden was Du vorhast. In meinem Beispiel erscheint beim Öffnen der Excel-Tabelle als erstes ein Anmelde-Window. Wenn die Anmeldung korrekt ist, wird ein ADO.Connection-Objekt erstellt, das ich im weiteren Verlauf immer wieder ohne weitere Anmeldung verwenden kann. Wenn die Anmeldung nicht korrekt ist, bleibt das Anmelde-Window weiterhin bestehen mit dem Hinweis, dass eben ein Fehler bei der Anmeldung aufgetreten ist und der Benutzer aufgefordert wird die Logindaten zu korrigieren.
Gruß,
KM
-
Hallo KM,
Bei uns sind alle Benutzer über den Operations Navigator so eingestellt, dass diese sich jedesmal, wenn Sie einen Zugriff auf die AS400 starten anmelden müssen, das kann ich in VBA umgehen in dem ich ein eigenes Form "Anmeldefenster" erstellt habe. Im Connection-String gebe ich dann den Benutzer und das Kennwort aus meiner Form mit. Das funktioniert auch so ganz gut, wenn der Benutzer und das Kennwort beim ersten mal korrekt eingegeben wurden. Bei einer Falscheingabe übernimmt die AS400 die Anmeldeprozedur, was ich nicht möchte, weil mir die AS400 kein Flag mit gibt, dass die Anmeldung korrigiert wurde.
Es ist nicht einfach, aber ich hoffe das ich mich verständlich ausgedrückt habe
-
Das leigt eben an der Einstellung:
dbDriverCompleteRequired
was dazu führt, dass bei Fehlern eben das Anmeldefenster kommt.
Diesen Wert musst du mit einer Einstellung "dbDriverPromptNone" verhindern!
Wobei ich den genauen Namen der Konstanten jetzt nicht kenne, den bekommst du aber per IntelliSence angezeigt.
-
Hallo,
ich habe jetzt den richtigen Befehl gefunden.
Die Zeile sieht jetzt so aus
Set cnADO1 = wrkODBC1.OpenConnection("", dbDriverNoPrompt, False, CN_STR & tbBenutzer & "; Pwd =" & tbKennwort)
und damit kann ich jetzt eine "ON Err" Abfrage starten und das ganze von vorne beginnen lassen
Übrigens Error 13 = falsches Kennwort
Vielen Dank an alle
Similar Threads
-
By Xanas in forum NEWSboard Java
Antworten: 11
Letzter Beitrag: 29-11-10, 12:45
-
By hs in forum IBM i Hauptforum
Antworten: 15
Letzter Beitrag: 07-11-06, 19:28
-
By stephanr1 in forum NEWSboard Drucker
Antworten: 7
Letzter Beitrag: 20-07-06, 14:00
-
By Peet in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 20-11-05, 10:13
-
By NixWisserin in forum NEWSboard Server Job
Antworten: 0
Letzter Beitrag: 15-02-05, 17:51
Tags for this Thread
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks