Supportnet / Forum / Datenbanken
Tabellenverknüpfung Access mit Excel
Frage
Hallo,
ich habe in der Access-Datenbank zwei Verknüpfungen zu je einer Excel-Tabelle erstellt. Nun gibt es das Problem, wenn zB. der Ort dieser Excel-Tabellen verändert wird (und das ist erforderlich :-( ), dann spuckt Access eine Fehlermeldung aus. Jetzt habe ich mich schlau gemacht, wie ich diesen Pfad zu den Excel-Tabellen mit VBA verändere und bin da immer wieder nur auf eine TabellenVerknüpfung von *.mdb zu *.mdb gestoßen. Wenn ihr mir helfen könnt, würd ich Freudensprünge machen, glaub ich, denn ich such schon eine Weile und ich finde nichts.
Gruß, Steffie
bitte helft mir
Antwort 1 von Steffie
Hallo, ich poste einmal, was ich bisher darüber gefunden habe. Wie oben beschrieben ist es eine Verknüpfung aus Access-Datenbank zu einer anderen Access-Datenbank:
------
'ein Modul, welches beim start der DB autom. gestartet wird und testet, ob die zu verknüpfende Datebnank da ist. Wenn nicht, dann wird ein Fenster eingeblendet, zur suche des neuen Pfades.
Function Autoexec() As Variant
' wird vom Autoexec-Makro aufgerufen
' Klasse zur Überprüfung der Verknüpfung
Dim objRefreshLink As clsRefreshLink
' Verknüpfung überprüfen
Set objRefreshLink = New clsRefreshLink
objRefreshLink.DataMDB = "CocktailDaten.mdb"
objRefreshLink.RefreshAllLinks
' Start-Formular aufrufen
DoCmd.OpenForm "Start"
End Function
-------------------------
ein Klassenmodul namens clsError:
Option Compare Database
Option Explicit
' Allgemeine Meldung
Const conNoError = "Kein Fehler aufgetreten!"
' Fehlerdaten (entspricht Err-Objekt)
Private mlngNumber As Long
Private mstrSource As String
Private mstrDescription As String
' unused
Private mstrHelpFile As String
Private mlngHelpContext As Long
Private mstrLastDLLError As String
' Gibt die Nummer des aufgetretenen Fehlers zurück
Property Get Number() As Long
Number = mlngNumber
End Property
' Gibt die Beschreibung des Fehlers zurück
Property Get Description() As String
Description = mstrDescription
End Property
' Gibt das Modul an, in dem der Fehler aufgetreten ist
Property Get Source() As String
Source = mstrSource
End Property
' Füllt das clsError-Objekt mit den Daten eines Err-Objekts
Public Sub Add(objErr As ErrObject)
With objErr
mlngNumber = .Number
mstrDescription = .Description
mstrSource = .Source
End With
End Sub
' Generiert einen benutzerdefinierten Fehler
Public Sub Raise(ByVal lngNumber As Long, _
Optional ByVal strSource As Variant, _
Optional ByVal strDescription As Variant)
mlngNumber = lngNumber
If Not IsMissing(strDescription) Then
mstrDescription = strDescription
Else
mstrDescription = "Fehler " & CStr(lngNumber)
End If
If Not IsMissing(strSource) Then
mstrSource = strSource
Else
mstrSource = "-"
End If
End Sub
' Fehlerobjekt wird auf "Kein Fehler" gesetzt
Public Sub Clear()
mlngNumber = 0
mstrDescription = conNoError
mstrSource = "-"
End Sub
' Fehler aufgetreten?
Public Function IsError() As Boolean
IsError = (Me.Number <> 0)
End Function
Private Sub Class_Initialize()
' Alle Werte initialisieren
Me.Clear
End Sub
-------------------------
ein weiteres Klassenmodul clsRefreshLink
...
...
...
dort steht noch einiges drinnen, weiß aber nichts mit anzufangen
...
...
...
MfG Steffie
------
'ein Modul, welches beim start der DB autom. gestartet wird und testet, ob die zu verknüpfende Datebnank da ist. Wenn nicht, dann wird ein Fenster eingeblendet, zur suche des neuen Pfades.
Function Autoexec() As Variant
' wird vom Autoexec-Makro aufgerufen
' Klasse zur Überprüfung der Verknüpfung
Dim objRefreshLink As clsRefreshLink
' Verknüpfung überprüfen
Set objRefreshLink = New clsRefreshLink
objRefreshLink.DataMDB = "CocktailDaten.mdb"
objRefreshLink.RefreshAllLinks
' Start-Formular aufrufen
DoCmd.OpenForm "Start"
End Function
-------------------------
ein Klassenmodul namens clsError:
Option Compare Database
Option Explicit
' Allgemeine Meldung
Const conNoError = "Kein Fehler aufgetreten!"
' Fehlerdaten (entspricht Err-Objekt)
Private mlngNumber As Long
Private mstrSource As String
Private mstrDescription As String
' unused
Private mstrHelpFile As String
Private mlngHelpContext As Long
Private mstrLastDLLError As String
' Gibt die Nummer des aufgetretenen Fehlers zurück
Property Get Number() As Long
Number = mlngNumber
End Property
' Gibt die Beschreibung des Fehlers zurück
Property Get Description() As String
Description = mstrDescription
End Property
' Gibt das Modul an, in dem der Fehler aufgetreten ist
Property Get Source() As String
Source = mstrSource
End Property
' Füllt das clsError-Objekt mit den Daten eines Err-Objekts
Public Sub Add(objErr As ErrObject)
With objErr
mlngNumber = .Number
mstrDescription = .Description
mstrSource = .Source
End With
End Sub
' Generiert einen benutzerdefinierten Fehler
Public Sub Raise(ByVal lngNumber As Long, _
Optional ByVal strSource As Variant, _
Optional ByVal strDescription As Variant)
mlngNumber = lngNumber
If Not IsMissing(strDescription) Then
mstrDescription = strDescription
Else
mstrDescription = "Fehler " & CStr(lngNumber)
End If
If Not IsMissing(strSource) Then
mstrSource = strSource
Else
mstrSource = "-"
End If
End Sub
' Fehlerobjekt wird auf "Kein Fehler" gesetzt
Public Sub Clear()
mlngNumber = 0
mstrDescription = conNoError
mstrSource = "-"
End Sub
' Fehler aufgetreten?
Public Function IsError() As Boolean
IsError = (Me.Number <> 0)
End Function
Private Sub Class_Initialize()
' Alle Werte initialisieren
Me.Clear
End Sub
-------------------------
ein weiteres Klassenmodul clsRefreshLink
...
...
...
dort steht noch einiges drinnen, weiß aber nichts mit anzufangen
...
...
...
MfG Steffie

