Announcement

Collapse
No announcement yet.

Tabellen verknüpfen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabellen verknüpfen

    Hallo!<br>
    Ich habe eine Datenbank die aus zwei Dateien besteht (ist unbedingt so nötig). Wenn ich die Datenbank in ein anderes Verzeichnis kopiere und die ursprünglichen Files lösche, dann kommt die Fehlermeldung, daß die zeite Datei nicht gefunden werden kann mit der Pfadangabe zum alten Order.<br>Meine Frage: Kann man die beiden Datenbanken auf relativ verknüpfen (also nicht mit absolutem Pfad)?????<br>GVT

  • #2
    Da wirst Du dir einen Code schreiben müssen, der beim Start der Anwendung die Verknüpfungen löscht und mit dem neuen Pfad die Verknüpfung wieder herstellt.

    Dazu mußt du durch die Tabledefs-Auflistung (CurrentDB.TableDefs) durchlaufen und für alle Tabledefs, bei denen das Property SourceTableName nicht leer ist mußt du dies anpassen. Folgender Code soll dir als vorlage dienen:

    <PRE>
    TableCount% = CurrentDb.TableDefs.Count
    For j% = 0 To TableCount% - 1
    Set TabellenDef1 = AktuelleDB.TableDefs(j%)
    If TabellenDef1.SourceTableName <> "" Then
    OldBase$ = TabellenDef1.Connect
    OldFilename$ = GetFilename(OldBase$)
    If OldFilename$ = ArchivFilename$ Then
    TabellenDef1.Connect = ArchivBase$
    Else
    TabellenDef1.Connect = NewBase$
    End If
    TabellenDef1.RefreshLink
    End If
    Next j%

    CurrentDb.TableDefs.Refresh
    </PRE&gt

    Comment


    • #3
      Hallo Bernhard!<br>Danke für den Tipp! Ich habe den Code mal für meine Zwecke angepasst, habe aber noch ein kleines Problem. Es kommt die Fehlermeldung 3420 - Objekt nicht mehr gültig - gemeint ist TabellenDef1.<br>Die Verknüpfungen, die aktuallisiert werden müssen sind bei mir 7 - Count bei TabelDefs ist jedoch 13!!!<br>Ach ja: Wie bekomme ich das aktuelle Verzeichnis raus? Die Tabelle auf die aktuallisiert werden soll ist ja immer im selben Verz. wie die Hauptdatei!!!<br>GV

      Comment


      • #4
        Aktueller Pfad der DB: CurrentDB.Name

        Zu der Fehlermeldung: ???? Weiß ich jetzt auch nicht

        Die Sourcezeile: If TabellenDef1.SourceTableName <> ""
        prüft ab, ob die aktuelle Tabelle eine verknüpfte Tabelle oder eine "richtige" Tabelle ist.

        D. h. TableDefs.Count = 13 und 7 verknüpfte Tabellen -> 8 "richtige" Tabelle

        Comment


        • #5
          Guten Morgen!<br>Ich habe den Grund für diesen Fehler gefunden. Die Zeile: Set TabellenDef1 = AktuelleDB.TableDefs(j%); darf so nicht stehen. Sobald TabellenDef1 zugewiesen wurde wird es von der Datenbank getrennt und wird somit ungültig.<br>Wenn man statt dieser Hilfsvariablen immer auf CurrentDB.TabelDelfs(j%) zugreift, dann gibts keinen Fehler und alles geht so wie es soll!<br>Also: Nochmals danke für die schnelle Hilfe!!<br>GV

          Comment

          Working...
          X