Avatar billede tg4600 Nybegynder
20. januar 2009 - 07:37 Der er 3 kommentarer

Update-query på MSysObjects

Jeg skal have omdøbt 200 linkede tabeller, i Access2000/2003, kunne jeg gøre det med denne SQL:

UPDATE MSysObjects SET MSysObjects.Name = Mid([Name],10)
WHERE (((MSysObjects.Name) Like "SM92TEST_*"));

Men i Access 2007, får jeg at vide:
"Operation must use an updateable query"

Hvorfor det, hvad gør jeg? Jeg kan selvfølgelig manuelt 'rename' 200 tabeller, men det burde ikke være nødvendigt..
Avatar billede jesperfjoelner Nybegynder
20. januar 2009 - 11:34 #1
Jeg er ikke vant til at bruge MsysObjects-tabellen men skal denne

UPDATE MSysObjects SET MSysObjects.Name = Mid([Name],10)
WHERE (((MSysObjects.Name) Like "SM92TEST_*"));

ikke være

UPDATE MSysObjects SET MSysObjects.Name = '" & Mid([Name],10) & "'
WHERE (((MSysObjects.Name) Like "SM92TEST_*"));

Alternativ kan tabellernes loopes igennem via en funktion.
Avatar billede tg4600 Nybegynder
20. januar 2009 - 12:47 #2
Mid([Name],10) er allerede en tekststreng, og skal derfor ikke i "".
Avatar billede jesperfjoelner Nybegynder
20. januar 2009 - 22:20 #3
Helt ok, hvad med at loope gennem tabellerne og rename dem.
Kan du bruge noget i stil med:

Dim db          As DAO.Database
Dim tdf        As TableDef

Set db = CurrentDb

For Each tdf In db.TableDefs
    'Er det et linked table så er connect-propertys længde > 0
    If Len(tdf.Connect) > 1 Then
    If left(tdf.name,9)="SM92TEST_" Then
            tdf.name = Mid(tdf.name,10)
    End if
    End If
Next

set db = nothing


(ikke selv testet det)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester