Avatar billede disdis Nybegynder
13. september 2004 - 15:20 Der er 5 kommentarer og
2 løsninger

Hvorden får man et autoID til at erstatte "manuelt- indtastet-ID"

Hvordan gør man i ACCESS når man vil ha et "autoID" ind i en tabel, som hidtil har fungeret med et "manuelt-ID".
Det "manuelle-ID" er indtastet (i et felt som er oprettet som tekstfelt), og har fungeret som nøgle til en anden tabel.
Det "manuelle" vil jeg ha væk, fordi det kan skabe problemer i fremtiden, men så vil jeg ha et "AutoID" til at overta rollen som nøglefelt.
Håber det er til at forstå :)
Avatar billede jpvj Nybegynder
13. september 2004 - 15:29 #1
En mulighed:

Eksporter din tabel og slet alle rækker.
Indsæt dit Autonummereringsfelt som nøgle og importer alle rækker igen.
13. september 2004 - 15:38 #2
Du opretter feltet ved siden af de andre som et autonummer, hvorved alle poster for tildelt et nummer.

Problemet er de relaterede tabeller: Her opretter du tillige et nummerisk ID-felt.

En opdateringsforespørgsel skal nu sørge for at alle ID'felterne i de andre tabeller peger det rigtige sted hen.
Denne kan typisk se således ud:
UPDATE Dintabel INNER JOIN Hovedtabel ON Dintabel.GlID = Hovedtabel.GlID SET Dintabel.NytID = Hovedtabel.NytID;


Dette gøres for alle relaterede tabeller.

Herefter kan du slette de gamle nøglefelter og sætte det nye ID som nøglefelt i hovedtabellen.

Herefter skal alle forespørgsler, formularer og rapporter tilpasses til de nye felter og have fjernet de gamle.

God fornøjelse :o)
Avatar billede disdis Nybegynder
13. september 2004 - 15:58 #3
Når jeg har indsat en nyt felt og vil gøre det til autonumerering får jeg konsekvent:
Når du har indtastet data i en tabel, kan du ikke ændre datatypen for noget felt til Autonumerering, heller ikke selvom du hr tilføjet data i feltet.
Føj et nyt felt til tabellen, og definer datatypen som Autonumering. Derefter indsætter Microsoft Office Access automatisk data i Autonumerings-feltet. Numereringen af posterne er fortløbende og starter med 1.
Men det er jo netop det jeg forsøger, så det kan jeg ikke forstå :(
13. september 2004 - 16:01 #4
Du må ikke gemme feltet som tal eller andet først! Du skal sætte det til Autonummerering med det samme, og først derefter gemme ændringerne.
Avatar billede disdis Nybegynder
13. september 2004 - 16:05 #5
ACCESS gemmer automatisk, kan man lave det om ?
13. september 2004 - 16:08 #6
Først når du lukker tabellen, da!?
Når du står i tabeldesign, indsætter du et nyt felt og angiver datatypen til Autonummereing. Først herefter lukker du tabellen og gemmer.
Avatar billede disdis Nybegynder
13. september 2004 - 16:24 #7
OK, nu lykkedes det, det var når jeg var i tabeldesign.
Jeg har nu fået det ind i de to tabeller, takker

Er det muligt at uddybe: "En opdateringsforespørgsel skal nu sørge for at alle ID'felterne i de andre tabeller peger det rigtige sted hen.
Denne kan typisk se således ud:
UPDATE Dintabel INNER JOIN Hovedtabel ON Dintabel.GlID = Hovedtabel.GlID SET Dintabel.NytID = Hovedtabel.NytID;"

Jeg har igen erfaring på det område, så jeg må indrømme "ikke forstået" :(
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