andyah
Goto Top

Access 2010 VBA - misslungene ODBC-Connection abfangen

Hi NG,

wie kann ich unter Access 2010 per VBA eine fehlerhafte MySQL ODBC Verbindung abfangen? Es soll, wenn sich ein User anmeldet, der kein MySQL User ist, eine Fehlermeldung ausgegeben werden.

Gruß
Andy

Content-Key: 227841

Url: https://administrator.de/contentid/227841

Printed on: April 20, 2024 at 00:04 o'clock

Member: colinardo
Solution colinardo Jan 27, 2014, updated at Jan 29, 2014 at 10:58:09 (UTC)
Goto Top
Hallo Andy,
könntest du wie in diesem Beispiel abfangen
Sub OpenConnection()
    Set conn = CreateObject("ADODB.Connection")  
    On Error GoTo LogonError
    conn.Open "Driver={MySQL ODBC 5.1 Driver};Server=127.0.0.1;Database=DATABASENAME;Uid=USERNAME;Pwd=PASSWORD;"  
    On Error Resume Next
   ' Hier deine Arbeit mit der Datenbank  
    Exit Sub
LogonError:
    MsgBox "Fehler beim Login zur Datenbank: " & Err.Description  
End Sub
Wenn du willst kannst du auch mit der Eigenschaft Err.Number die Fehler im Errorhandler spezifischer auswerten.

Grüße Uwe
Member: AndyAh
AndyAh Jan 28, 2014 at 10:30:19 (UTC)
Goto Top
Hi Uwe,

ich hab's gerade ausprobiert. Leider musste ich feststellen, dass "LogonError" immer angesprungen wird.

Hier mal meinen Code:

Private Sub Befehl12_Click()
   Dim connstr As String
   Dim conn As New ADODB.Connection
   Dim user As String
   Dim passwort As String
   
   Text0.SetFocus
   user = Text0.Text
   Text4.SetFocus
   passwort = Text4.Text
   connstr = "DRIVER={MySQL ODBC 5.2 ANSI Driver};SERVER=localhost;DATABASE=adressen;" & "USER=" & user & ";" & "PASSWORD=" & passwort & "; OPTION=3"  
   
   conn.ConnectionString = connstr
   On Error GoTo LogonError

    
    conn.Open


    On Error Resume Next

    MsgBox "OK"  
    conn.Close

   ' Hier deine Arbeit mit der Datenbank  


LogonError:


    'bei richtigem Login ist die Description leer und wird als Fehlercode 0 angezeigt  
    MsgBox "Fehler beim Login zur Datenbank: " & Err.Description  
  
End Sub


Gruß
Andy
Member: colinardo
Solution colinardo Jan 28, 2014, updated at Jan 29, 2014 at 10:58:20 (UTC)
Goto Top
Zitat von @AndyAh:

Hi Uwe,

ich hab's gerade ausprobiert. Leider musste ich feststellen, dass "LogonError" immer angesprungen wird.
ach sorry, dir fehlt noch ein Exit Sub hinter MsgBox "OK"

Private Sub Befehl12_Click()
   Dim connstr As String
   Dim conn As New ADODB.Connection
   Dim user As String
   Dim passwort As String
   
   Text0.SetFocus
   user = Text0.Text
   Text4.SetFocus
   passwort = Text4.Text
   connstr = "DRIVER={MySQL ODBC 5.2 ANSI Driver};SERVER=localhost;DATABASE=adressen;" & "USER=" & user & ";" & "PASSWORD=" & passwort & "; OPTION=3"  
   conn.ConnectionString = connstr
   On Error GoTo LogonError
    conn.Open
   On Error Resume Next

    MsgBox "OK"  
    conn.Close

    Exit Sub

LogonError:
    MsgBox "Fehler beim Login zur Datenbank: " & Err.Description  
End Sub

Grüße Uwe
Member: AndyAh
AndyAh Jan 29, 2014 at 11:01:04 (UTC)
Goto Top
Hi Uwe,

danke für den Tipp. Ich hatte es schon anders gelöst. Im LoginError habe ich einfach nach err.number <> 0 abgefragt.

Gruß
Andy