Tabellen hernoemen

Status
Niet open voor verdere reacties.

Ronaldzoekthulp

Nieuwe gebruiker
Lid geworden
29 mei 2007
Berichten
2
Hallo,

Ik ben zeer onervaren in Access maar moet nu veel tabellen herbenoemen. Bij ongeveer 150 tabellen moet de naam USER0_(tabelnaam) vervangen worden door MAS07_(tabelnaam). Moet dit echt handmatig of is er ergens een verborgen vind en vervang functie? Is er iemand die hier een soort macro voor heeft die ik aan kan passen?

Alvast bedankt!
 
Code:
Public Sub RenameTables(strPrefixOud As String, strPrefixNew As String)
'Vervang de prefix van een tabel door een andere
    Dim tblDef     As TableDef
    Dim tblDefs    As TableDefs
    Dim strNewName As String
    Dim intLen     As Integer
    
    Set tblDefs = CurrentDb.TableDefs

    intLen = Len(strPrefixOud)
    
    For Each tblDef In tblDefs
        If Left$(tblDef.Name, intLen) = strPrefixOud Then
            strNewName = strPrefixNew & Mid$(intLen, tblDef.Name)
            DoCmd.Rename strNewName, acTable, tblDef.Name
        End If
    Next tblDef
    
End Sub
Code is niet getest.

Succes!
 
Helemaal perfect

Bedankt voor het stukje code. Met een paar kleine aanpassingen werkte het perfect!!! Voor anderen die een zelfde probleem heben hier de door mij gebruikte en geteste code.

Public Function TabllF() As Integer
'Vervang de prefix van een tabel door een andere
Dim tblDef As TableDef
Dim tblDefs As TableDefs
Dim strNewName As String
Dim strPrefixOud As String
Dim strPrefixNew As String
Dim intLen As Integer
Dim intStart As Integer


Set tblDefs = CurrentDb.TableDefs

strPrefixOud = "USER2"
strPrefixNew = "MAS07"


intLen = Len(strPrefixOud)
intStart = intLen + 1


For Each tblDef In tblDefs

If Left$(tblDef.Name, intLen) = strPrefixOud Then
strNewName = strPrefixNew & Mid(tblDef.Name, intStart, Len(tblDef.Name) - intLen)
DoCmd.Rename strNewName, acTable, tblDef.Name
End If
Next tblDef


End Function
 
Je kan volstaan met
Code:
strNewName = strPrefixNew & Mid$(tblDef.Name, intStart)
Die geeft de rest van je string terug vanaf intStart ongeacht hoe lang die is. Scheelt weer iets.

En ik zou wel de STRING versies gebruiken van de LEFT, RIGHT en MID functies. Dus LEFT$, RIGHT$ en MID$ deze zijn namelijk sneller.

Enjoy!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan