none
Excel Tabelle verknüpfen

    Frage

  • Hallo zusammen,

    ist es möglich eine Excel Tabelle zu verknüpfen ohne das der komplette Pfad gespeichert wird?

    Die Datenbankdatei und die Exceldatei liegen im selben Verzeichnis. Auf dem End-PC ist kein Access installiert und da kann ich dann die Verknüpfung nicht aktualisieren.

    Vielen Dank

    Mike

     

    Freitag, 14. Januar 2011 09:54

Antworten

  • Mike Berger wrote:
    > ...
    > Ich habe nur das Problem, dass der Link durch das Sub/Function nicht
    > geändert wird.
    >
    > VBA zeigt mir auch keinen Fehler an.
    >
    > Die Tabelle ist immer noch mit der originalen Datei verbunden.
    >
    > Soll ich die Verknüpfung besser löschen und neu erstellen?
     
    Nicht nötig. In deinem Code fehlt "nur" der Aktualisierungsbefehl. ;-)
    Füge noch das hier nach dem Ändern von tdef.Connect ein:
     
    tdef.RefreshLink
     
     
    --
    Servus
    Karl
    *********
     
     
     
    • Als Antwort markiert Mike Berger Samstag, 15. Januar 2011 01:38
    Freitag, 14. Januar 2011 16:43

Alle Antworten

  • hi Mike,

    Auf dem End-PC ist kein Access installiert und da kann ich dann die Verknüpfung nicht aktualisieren.

    Das ist nicht richtig. Du hast bloß kein Tabellenverknüpfungsmanager, aber du kannst es ohne Probleme selber per VBA machen:

    http://www.4tops.com/ms_access_tips/rxltbl.htm


    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Freitag, 14. Januar 2011 10:05
    Moderator
  • Hallo Mike Berger
    Du kannst die Verknüpfung zur Laufzeit (z.B. beim Start) der Anwendung anpassen, indem Du die das Connect Property der TableDef auf Deinen Pfad umhängst. Diesen findest Du aus CurrentDB.Name heraus. So wird sichergestellt, dass immer der gleiche Pfad verwendet wird, wie der, von dem die Anwendung gestartet wurde
    Gruss
    Henry

    Hallo zusammen,

    ist es möglich eine Excel Tabelle zu verknüpfen ohne das der komplette Pfad gespeichert wird?

    Die Datenbankdatei und die Exceldatei liegen im selben Verzeichnis. Auf dem End-PC ist kein Access installiert und da kann ich dann die Verknüpfung nicht aktualisieren.

    Vielen Dank

    Mike

     

    Freitag, 14. Januar 2011 10:08
  • Hallo Henry,

    ich habe dies nun auch in ein Modul erstellt.

    Sub Verbindung()
      Dim tdef As TableDef
      Dim strPfad As String
      strPfad = Mid(CurrentDb.Name, 1, Len(CurrentDb.Name) - 26)
      For Each tdef In CurrentDb.TableDefs
        If tdef.Name = "tblUserKuerzel" Then
          tdef.Connect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & _
                  strPfad & _
                  "Userkuerzel.xls"
        End If
      Next tdef
    End Sub
    
    Wie kann ich dies nun automatisch laufen lassen, wenn die Datenbank geöffnet wird?

    Mike

    Freitag, 14. Januar 2011 11:15
  • hallo Mike,

    Wie kann ich dies nun automatisch laufen lassen, wenn die Datenbank geöffnet wird?

    Benutze das AutoExec-Makro und rufe dort deinen Methode auf.


    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Freitag, 14. Januar 2011 11:29
    Moderator
  • Mike Berger wrote:
    > ich habe dies nun auch in ein Modul erstellt.
    >
    >
    > Sub Verbindung()
    >  Dim tdef As TableDef
    >  Dim strPfad As String
    >  strPfad = Mid(CurrentDb.Name, 1, Len(CurrentDb.Name) - 26)
     
    Wenn diese Zeile den Ordner der aktuellen DB liefern soll,
    dann geht das besser mit: CurrentProject.Path & "\"
     
    >  For Each tdef In CurrentDb.TableDefs
    >    If tdef.Name = "tblUserKuerzel" Then
     
    Hier könntest du noch prüfen, ob die Neuverknüpfung überhaupt
    notwendig ist, indem du den bisherige Connect-Wert mit dem
    neuen vergleichst.
     
    >      tdef.Connect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & _
    >              strPfad & _
    >              "Userkuerzel.xls"
    >    End If
    >  Next tdef
    > End Sub
    >
    > Wie kann ich dies nun automatisch laufen lassen, wenn die Datenbank
    > geöffnet wird?
     
    Die Sub sollte in einem Standardmodul liegen. Dann kannst du
    sie z.B. beim Öffnen-Ereignis eines Startformulares aufrufen.
     
    Alternativ kannst du sie in eine Function umwandeln und dann
    in einem AutoExec-Makro mit der Makroaktion AusführenCode
     --
    Servus
    Karl
    *********
     
     
    Freitag, 14. Januar 2011 11:30
  • Hallo Karl,

    vielen Dank für Deine Änderungen.

    Ich habe nur das Problem, dass der Link durch das Sub/Function nicht geändert wird.

    VBA zeigt mir auch keinen Fehler an.

    Die Tabelle ist immer noch mit der originalen Datei verbunden.

    Soll ich die Verknüpfung besser löschen und neu erstellen?

    Mike

    Freitag, 14. Januar 2011 16:20
  • Mike Berger wrote:
    > ...
    > Ich habe nur das Problem, dass der Link durch das Sub/Function nicht
    > geändert wird.
    >
    > VBA zeigt mir auch keinen Fehler an.
    >
    > Die Tabelle ist immer noch mit der originalen Datei verbunden.
    >
    > Soll ich die Verknüpfung besser löschen und neu erstellen?
     
    Nicht nötig. In deinem Code fehlt "nur" der Aktualisierungsbefehl. ;-)
    Füge noch das hier nach dem Ändern von tdef.Connect ein:
     
    tdef.RefreshLink
     
     
    --
    Servus
    Karl
    *********
     
     
     
    • Als Antwort markiert Mike Berger Samstag, 15. Januar 2011 01:38
    Freitag, 14. Januar 2011 16:43
  • Hallo Karl,

    so einfach ist die Lösung ;-)

    Nun funktioniert es sehr gut.

    Mike

    Samstag, 15. Januar 2011 01:41