Tabellen automatisiert umbenennen anhand einer Tabelle
Ich habe eine Access 2003 Datenbank mit knapp 250 Tabellen. Diese möchte ich jetzt mittels VBA automatisiert umbenennen.
Die alten und die neuen Tabellennamen sitehen wiederum in einer Tabelle.
zB
es ist immer unterschiedlich.. manchmal soll einfach nur die Groß/Kleinschreibung geändert werden.. manchmal erhält die Tabelle einen ganz anderen Namen. Deshalb die "Referenztabelle" mit sozusagen "ValueOld" und "ValueNew"
Wie schaffe ich es jetzt mittels VBA dass alle tabellen in der DB umbenannt werden?
ich habe schon versucht irgendetwas ähnliches zu googeln und anzupassen.. das ging aber kläglich in die Hose
Die alten und die neuen Tabellennamen sitehen wiederum in einer Tabelle.
zB
ForeignName | Name
----------------------------------------------------------------------------
_email_posteingangaktion | MailAktionEingang
9300 servo-positionierregler | 9300 Servo-Positionierregler
ablageordner | AblageOrdner
adressenbesuche | AdressenBesuche
aktionen | Aktionen
kdb | KDB Basis
es ist immer unterschiedlich.. manchmal soll einfach nur die Groß/Kleinschreibung geändert werden.. manchmal erhält die Tabelle einen ganz anderen Namen. Deshalb die "Referenztabelle" mit sozusagen "ValueOld" und "ValueNew"
Wie schaffe ich es jetzt mittels VBA dass alle tabellen in der DB umbenannt werden?
ich habe schon versucht irgendetwas ähnliches zu googeln und anzupassen.. das ging aber kläglich in die Hose
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 148635
Url: https://administrator.de/contentid/148635
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
1 Kommentar
Hallo ShitzOvran !
Sofern beim Umbenennen keine Bezüge in Abfragen, Formulare... verloren gehen, sollte dieser Code das gewünsche Ergebnis bringen:
Gruß Dieter
Sofern beim Umbenennen keine Bezüge in Abfragen, Formulare... verloren gehen, sollte dieser Code das gewünsche Ergebnis bringen:
Sub Test()
Dim rs As Object, Table As Object, NewName As String, OldName As String
Set rs = CurrentDb.OpenRecordset("Select * From [Referenztabelle]")
On Error Resume Next
Do Until rs.EOF
OldName = rs("ForeignName")
NewName = rs("Name")
Set Table = CurrentData.AllTables(OldName)
If Err.Number = False Then
DoCmd.Rename NewName, acTable, OldName
Else
Err.Clear
'MsgBox "Tabelle existiert nicht: " & OldName, vbExclamation, "Fehler"
End If
rs.MoveNext
Loop
End Sub
Gruß Dieter