Neu verlinken

Aus DBWiki
Wechseln zu: Navigation, Suche

Bei einer Änderung an der MySQL Datenbank und verlinkten Tabellen werden diese erst nach dem Neueinbinden aktualisiert in Access angezeigt. Dies führt zu Problemen oder viel Handarbeit. Mit dem nachfolgenden Code können die Tabellen bei jedem Start neu eingebunden werden.

Public Property Get ThisDb(Optional forceReinitialization As Boolean) _
       As DAO.Database
   Static db As DAO.Database
 
   If db Is Nothing Or forceReinitialization Then Set db = CurrentDb
   Set ThisDb = db
End Property
 
Public Function reconnectMySQL() As Boolean
   Dim i As Integer
   Dim tdf As TableDef
 
   On Error GoTo Er
 
   For i = 0 To ThisDb(True).TableDefs.Count - 1
      Set tdf = ThisDb(True).TableDefs(i)
      If Len(tdf.Connect) > 0 Then
         tdf.Connect = "ODBC;DATABASE=DeineDatenbank;DSN=DeineDNS;OPTION=0;" & _
                       "PORT=3306;SERVER=DeinServer;PASSWORD=DeinPasswort"
         tdf.RefreshLink
      End If
   Next
   reconnectMySQL = True
 
Ex:
   Exit Function
 
Er:
   Resume Ex
End Function

Aufruf

   If Not reconnectMySQL Then
      Call MsgBox("Es konnte keine Verbindung zur Datenbank hergestellt werden." _
                  & vbCrLf & "Überprüfen Sie die Netzwerkeinstellungen und starten Sie " _
                  & vbCrLf & "Ihr System eventuell neu.", _
                  vbCritical, "Keine Verbindung möglich.")
      DoCmd.Quit
      Exit Sub
   End If