Einführung "VBA mit Microsoft Office"

Code Snippet "VBA Excel"

Stellt für externe Query mit Access-DB Connection wieder her

funktioniert nur, wenn Excel- und Accessdatei im gleichen Verzeichnis sind und Access-Datei so heisst wie bezeichnet; Beim Öffnen die Shift-Taste halten, damit Makro nicht losgeht

Sub initializeConnection()
  Const sheetname = "dataquery"
  Const queryname = "businessgame"
  Const accessFileName = "businessgames.mdb"
  
  Dim newpath As String
  Dim oldpath As String
  Dim qy As QueryTable
  Dim tmp As String
  Set qy = ActiveWorkbook.Sheets(sheetname).QueryTables(queryname)
  tmp = qy.connection
  tmp = Mid(tmp, InStr(tmp, "DBQ=") + 4)
  oldpath = Left(tmp, InStr(tmp, ";") - (2 + Len(accessFileName)))
  newpath = ThisWorkbook.path
  Debug.Print "Alter Pfad: " & oldpath
  Debug.Print "Neuer Pfad: " & newpath
  
  qy.connection = _
      Application.Substitute(qy.connection, _
      oldpath, newpath)

  Debug.Print qy.connection

End Sub

'In thisWorkbook
Private Sub Workbook_Open()
  Call initializeConnection
End Sub