Avatar billede olav76 Nybegynder
25. oktober 2007 - 13:04 Der er 8 kommentarer

Dupliker post ved autonummerering

Jeg har prøvet at lave en knap der skulle kunne duplikere den aktuelle post ved hjælp af følgende kode:

DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.GoToRecord acForm, "Form1", acNewRec
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste

Men da et af felterne er autonummereret, får jeg at vide at duplikeringen er gået galt, og at dataene kan findes i tabellen "Indsætningsfejl".

Hvordan undgår jeg at det autonummererede fejl medtages i duplikeringen, men til gengæld autogenereres når resten af dataene sættes ind i den nye post?
Avatar billede -anders- Juniormester
25. oktober 2007 - 13:19 #1
Hej

Nedenstående kode gør tricket helt automatisk, prøv at anvende den ved klik på din knap.

    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append
Avatar billede olav76 Nybegynder
25. oktober 2007 - 13:47 #2
Den kode du foreslår er den kode der laves når man laver en "dupliker post"-knap via guiden. Den havde jeg prøvet først med samme resulat. Derfor fandt jeg den kode jeg har skrevet her inde på eksperten.

Begge kodestumper ser i mine øjne ikke ud til at tage højde for autonummereringen, og i hvert fald får jeg samme fejlmeddelelse med begge kodestumper;

"Poster, som lxxxbasen ikke kunne indsætte, er blevet placeret i en ny tabel med navnet "Indsætningsfejl".

Du kan åbne den nye tabel i databasevinduet, hvis du vil se de ikke-indsatte poster. Når du har løst problemer, der har forårsaget indsætningsfejlene, kan du kopiere og indsætte posterne fra den nye tabel."

Jeg har naturligvis prøvet at fjerne det autonummererede felt fra posten i tabellen "Indsætningsfejl", og kopierer de modererede data ind i min formular, og det virker fint (der autogenereres herved et nyt nummer i det autonummererede felt).

Kan man moderere en af de nævnte kodestumper så de ikke medtager det autonummererede felt, eller findes der en anden løsning?
Avatar billede -anders- Juniormester
25. oktober 2007 - 13:57 #3
hmm, det mystisk, jeg har testet med en tabel og formular hvor der er autonummeringsfelt før jeg svarede, og det giver ikke problemer her. Jeg ved så ikke lige hvad der kan være galt
Avatar billede mugs Novice
25. oktober 2007 - 14:17 #4
Kan der være andre feltetr der en indekserede uden at dubletter tillades?
Avatar billede -anders- Juniormester
25. oktober 2007 - 14:42 #5
Hej mugs

Ja det må være der den berømte hund ligger begravet, jeg lige testet igen hvor jeg tilføjede et felt som blev indekseret med tillad dubletter Nej. Når jeg derefter køre koden fejler det nøjagtig som olav76 beskriver.
Avatar billede olav76 Nybegynder
25. oktober 2007 - 15:51 #6
OK - det har ikke noget med autonummereringen at gøre. Det har vist sig, at hvis jeg fjerner inputmasken på mine datofelter, så virker det. Jeg må så lige se om jeg ikke kan få min inputmaske med alligevel, på en eller anden måde.

Tak for hjælpen.
Avatar billede mugs Novice
25. oktober 2007 - 15:59 #7
Når du kopierer posten er inptumaske vel ligegyldig. Det er jo kun en måde at indtaste data på. Men måske formatet kan have en vis brugbarhed for brugeren.
Avatar billede -anders- Juniormester
25. oktober 2007 - 16:12 #8
Jeg har lige testet med en inputmaske (kort datoformat), og det virker fint, meget mystisk :o).

Hvis du har mod på det må du gerne sende din db til mig, husk at zippe den. Så vil jeg gerne ta' et kik på den (jeg anvender access 2003)anjATbryggemail.dk erstat AT med @
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