Avatar billede zaydn Nybegynder
03. december 2005 - 12:31 Der er 11 kommentarer

insert mellem rækker i automun.

Hej!

Jeg har en tabel i en Access database. For eksemplets skyld siger vi, at jeg har 2 rækker. Den første er autonummeret(fra 1 og op efter) og den anden indeholder navne. Det kunne se sådan ud:

1  Palle
2  Bent
3  Irma
4  Tine

Nu vil jeg så gerne indsætte en række imellem Bent og Irma. Det bliver så Kurt der kommer ind der:

1  Palle
2  Bent
3  Kurt
4  Irma
5  Tine

Hvordan gør jeg det?
Avatar billede jkrons Professor
03. december 2005 - 12:42 #1
Det gør du ikke!

Autonummer nummererer altdi forløbendend, med mindre du har valgt at nummerere i tilfældig orden.

Posternes rækkefølge i en tabel er ligegyldig for Access, så derfor tilføjes nue poster altid i bunden. Så må du gennem sortering sikre den rigtige rækkefølge.

Du kan undlade at bruge autonummer, men så er du selv ansvarligt for at de øvrige renummereres inden du prøver at "genbruge" et nummer. Og husk, at det ALDRIG er en god idé at ændre primærnøglen i en post, hvilket du så vidt jeg kan se, er i gang med her.
Avatar billede jesperfjoelner Nybegynder
03. december 2005 - 14:22 #2
Det er præcis som jkrons siger.
Du skal skal være fra idéen om at autonummeret skal give mening. Det skal ikke give mening for brugerne af databasen, som heller ikke skal se dit autonummer. Autonummeret skal bare være tilgængeligt internt for Access, når du laver relationer mellem din tabeller.
Hvis du virkelig vil have et fortløbende nummer kan du lave en kolonne mere med tal, som du så selv styer indholdet af.

autonummer,tal,tekst
1  1 Palle
2  2 Bent
3  4 Irma
4  5 Tine
5  4 Kurt

hvor du så sorterer efter kolonne 2.
Avatar billede jesperfjoelner Nybegynder
03. december 2005 - 16:14 #3
det gik lidt hurtigt, det skal være:

autonummer,tal,tekst
1  1 Palle
2  2 Bent
3  4 Irma
4  5 Tine
5  3 Kurt
Avatar billede jkrons Professor
03. december 2005 - 21:49 #4
jesperfjoelner-> Men det kræver en manuel eller programmatisk renummerering af de øvrige numre, hvilket er lidt besværligt, hvis man har 100.000 poster og indsætter en ny nr 3 :-)
Avatar billede jesperfjoelner Nybegynder
04. december 2005 - 00:06 #5
jkrons > en automatisk opdatering er ikke så besværlig.
Men hvorfor skal Kurt proppes ind lige der?

Hvis du vil have ham ind der kan jeg ikke se at du har andre muligheder en manuel/programmeret opdatering.

Det er en uskik databasemæssigt at anvende autonummeret til andet en interne sammenhænge.
Avatar billede jkrons Professor
04. december 2005 - 10:42 #6
jesperfjoelner-> Det var nu ikke mig, der ville proppe Kurt ind. Jeg argumenterede faktisk mod den fortløbende nummerering :-)
Avatar billede jesperfjoelner Nybegynder
04. december 2005 - 13:44 #7
jkrons > sorry, det kan jeg se. jeg er med nu :-)
Avatar billede Slettet bruger
05. december 2005 - 11:37 #8
Det kan selvfølgelig godt lade sig gøre, men det er lidt fjollet!~)

Hvis du vil have et forløb, som kan tilføje kurt, så skal forløbet:
*forudsætning er at du opretter et felt i din tabel, som hedder rækkefølge (decimaltal)
derefter:
*oprette en temp tabel, som er et kopi af din tabel
*opdatere din tabel så rækkefølge bliver lig autonummereringen
*tilføj fra din formular kurt og indtast rækkefølge (2,5)
*tilføje alt data pånær autonummereringen til temp tabellen
*slet oprindelig tabel
*omdøbe temp tabellen til din tabels navn....

?~)
Avatar billede Slettet bruger
05. december 2005 - 11:38 #9
Hov, jeg glemte det vigtigste, du skal selvfølgelig sortere på rækkefølge når du tilføjer til temp tabellen!~)
Avatar billede Slettet bruger
05. december 2005 - 11:40 #10
Der er sikkert også andre forløb/muligheder, men de dækker over det samme...
At det ikke umiddelbart kan lade sig gøre....
Avatar billede fynbohans Nybegynder
05. december 2005 - 15:15 #11
Der er faktisk en helt regulær måde at gøre det på i VBA i en opdateringsformular.
Du gør det modsatte af det i de andre svar: Du flytter dataene og indsætter "Kurt" det
rigtige sted! Og flytter den nuværende sidste post til en ny post.
Har desværre først tid til at lave et eksempel tidligst tirsdag aften.
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