Anzeige
Archiv - Navigation
344to348
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
344to348
344to348
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ODBC Fehler abfangen

ODBC Fehler abfangen
01.12.2003 11:56:44
Sebastian Jürges
Hallo, ich benutze ODBC um mir aus einer Datenbank (DB2) Daten zu hoen und in Excel zu importieren.

Nun zum problem. Ich lasse das passwort beim öffnen der datei auf einem formular eingeben (meherer nutzer). Gibt man es falsch ein, versucht ODBC trotzdem auf dei DB zu connecten, und zwar sooft wie abfragen in dem sub definiert sind.

Unser RACF ist so eingestellt das nach 3 falschen pw's der Zugang gesperrt wird.

Ich will jetzt etwas einbauen das sozusagen einen "passwort check" durchführt.
Ist sowas möglich ... ?

MfG
Sebastian M Jürges

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ODBC Fehler abfangen
01.12.2003 12:32:22
Nike
Hi,
du könntest ja mit ner "kleinen" Abfrage "vorfühlen" ob der
Connect erfolgreich ist und wenn ja, dann weiter, ansonsten abbruch.
Sehr rudimentär aber vielleicht hilft's ja,
ansonsten müßte man mal den Code sehen, den du da so seinsetzt...

Bye

Nike
AW: ODBC Fehler abfangen
01.12.2003 13:34:43
Sebastian Jürges
Ok, ich habe mal die Datei angehängt ...

https://www.herber.de/bbs/user/2242.xls

Ist ein auto_open drin für username / password, wird aber nur in eine zelle geschrieben daher unbedenklich ... einfach irgnedwas eingeben und ok
AW: ODBC Fehler abfangen
04.12.2003 16:01:52
Sebastian Jürges
So, umständlich wenns (wahrscheinlich) auch einfacher geht ... LÖSUNG:

========================================================================
Public

Sub zugriffs_test(dsn, uid, pwd) ' Über geben der nutzerdaten / server
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
'Überprüfungsdatei löschen (wenn existent)
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.fileexists("C:\db2xls.txt") Then
fs.deletefile ("C:\db2xls.txt")
End If
' Eine Shell öffnen, einen connect mit den angegeben daten ausführen und die darauf folgende ausgabe in datei C:\db2xls.txt ausgeben
Dim command, shellzugriff As String
command = "db2cmd " + Chr$(34) + "TITLE = ### Überprüfen der DB2-Anbindung  ### & db2 connect to " + dsn + " USER " + uid + " using " + pwd + " > C:\db2xls.txt & exit" + Chr$(34) + " & exit"
shellzugriff = Shell(command, 0)
'Warten bis die datei erstellt ist (Shell abgeschlossen)
Do While Not fs.fileexists("C:\db2xls.txt")
Loop
'Warten bis die datei nicht mehr leer ist (sonst problem mit text-stream)
Do
Loop Until FileLen("C:\db2xls.txt") > 0
'Datei einlesen
Dim ds, d
Set ds = CreateObject("Scripting.FileSystemObject")
Set d = ds.OpenTextFile("c:\db2xls.txt", ForReading, TristateFalse)
s = d.ReadAll
d.Close
'eingelesene datei in E18 ausgeben, E19 ist formel LINKS(E18,9) um nur den SQLCode zu kriegen
Range("E18") = s
'Wenn E19 SQL Fehlercode (PASSWORD INVALID) dann Msgbox mit fehlerdatei und workbook zu
If Range("E19") = "SQL30082N" Then
MsgBox (s)
MsgBox ("Die Anwendung wird geschlossen")
ActiveWorkbook.Close
End If
End Sub

========================================================================
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige