ich möchte (muss) per ADODB ein verbindung in unser teradata dwh system
aufbauen um dort eine abfrage zu starten (dauer mit ado 1min, mit dao 5min).
nun hat jeder anwender seinen eigenen username und passwort für das teradata system.
mit folgendem code überprüfe ich, ob die logindaten korrekt sind:
Sub StartVerarbeitung()
Dim DWHuser As String
Dim DWHpw As String
Dim ConFehler As String
Dim aRS As ADODB.Recordset
Dim Con As ADODB.Connection
START:
DWHuser = InputBox("Bitte DWH User eingeben", "DWH User", "KAN10****")
DWHpw = InputBox("Bitte DWH Passwort eingeben", "DWH Passwort", "z*******")
On Error GoTo Fehler:
Err.Clear
Set Con = New ADODB.Connection
Set aRS = New ADODB.Recordset
Con.CommandTimeout = 600
Con.Open "DRIVER={Teradata};UID= " & DWHuser & " ;DBCNAME=127.0.0.1;DATABASE=DWH_Table;", DWHuser, DWHpw
Fehler:
If Err.Number <> 0 Then
Err.Clear
On Error GoTo 0
Set Con = Nothing
Set aRS = Nothing
GoTo START:
End If
''hier gehts weiter
Code eingefügt mit Syntaxhighlighter 3.0
mir ist schon bewusst, das ich eine endlosschleife eingebaut habe, wenn der anwender
falsche logindaten eingegeben hat, aber genau hier liegt auch das problem :(
beim ersten durchlauf mit falschen logindaten springt vba in den fehler und von dort
wieder zum start mit eingabe der logindaten.
gibt der anwender erneut falsche logindaten ein, bleibt vba bei "con.open" im debug
modus hängen und zeigt eine laufzeit fehlermeldung an.
(laufzeitfehler '-2147217843 (80040e4d)' / user identification is not authorized).
nun frage ich mich wieso wird der fehler beim ersten mal korrekt abgefangen und
beim zweiten mal nicht und ob ich den logintest nicht irgendwie besser machen könnte.
hat jemand zufällig ein idee?
NoxX
--------------------------------------------------------------------------------------------------------------

geschrieben von NoxX , 04.05.2006, 12:00 Uhr , 17 mal gelesen