Verlinkte Tabelle umbennenen

22/03/2008 - 11:36 von Urs Meyer | Report spam
Hallo Leute

Ich möchte eine verlinkte Tabelle umbenennen, damit der Name in der lokalen
und externen Datenbank àndert. Irgendwas mache ich aber falsch. Mit
untenstehendem Code werden die Namen zwar geàndert, bloss bleibt der Link
falsch: Doppelklick auf die verlinkte Tabelle ergibt die Fehlermeldung, dass
das Jet-DB-Modul die "alte" Tabelle nicht findet. Irgendwie muss ich den
Link noch aktualisieren. Kennt jemand die Lösung?

Danke und Gruss Urs

\\\

'Name in externer Datenbank àndern
Set eng = CreateObject("DAO.DBEngine.36")
Set dbs = eng.OpenDatabase(DBVerzeichnis & "\daten.mdb", True)
bolTblExist = False
For Each tdf In dbs.TableDefs
If tdf.Name = strTableNameAlt Then
tdf.Name = strTableNameNeu
bolTblExist = True
Exit For
End If
Next tdf

'Name in lokaler Datenbank àndern
If bolTblExist = True Then
For Each tdf In CurrentDb.TableDefs
If tdf.Name = strTableNameAlt Then
tdf.Name = strTableNameNeu
tdf.RefreshLink
Exit For
End If
Next tdf
End If
Exit_Sub:
Exit Sub

///
 

Lesen sie die antworten

#1 Karl Donaubauer
22/03/2008 - 12:14 | Warnen spam
Urs Meyer wrote:
...
Ich möchte eine verlinkte Tabelle umbenennen, damit der Name in der
lokalen und externen Datenbank àndert. Irgendwas mache ich aber falsch.
Mit untenstehendem Code werden die Namen zwar geàndert, bloss bleibt der
Link falsch: Doppelklick auf die verlinkte Tabelle ergibt die
Fehlermeldung, dass das Jet-DB-Modul die "alte" Tabelle nicht findet.
Irgendwie muss ich den Link noch aktualisieren. Kennt jemand die Lösung?

'Name in externer Datenbank àndern
Set eng = CreateObject("DAO.DBEngine.36")
Set dbs = eng.OpenDatabase(DBVerzeichnis & "\daten.mdb", True)
bolTblExist = False
For Each tdf In dbs.TableDefs
If tdf.Name = strTableNameAlt Then
tdf.Name = strTableNameNeu
bolTblExist = True
Exit For
End If
Next tdf

'Name in lokaler Datenbank àndern
If bolTblExist = True Then
For Each tdf In CurrentDb.TableDefs
If tdf.Name = strTableNameAlt Then
tdf.Name = strTableNameNeu
tdf.RefreshLink
Exit For
End If
Next tdf
End If
Exit_Sub:
Exit Sub



Wenn sich der Name der Herkunftstabelle àndert, musst die
gelinkte Tabelle in der lokalen db löschen und mit den aktuellen
Angaben neu einbinden.

Es gibt für gelinkte Tabellen zwar die Eigenschaft SourceTableName.
Die ist aber für bereits eingebundene Tabellen (d.h. solche, die
schon in der TableDefs-Auflistung stehen) schreibgeschützt.

HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
2. SQL Server-Entwickler-Konferenz: www.donkarl.com/?SEK
Nürnberg 12./13.4. + 19./20.4.2008

Ähnliche fragen