13. januar 2005 - 12:10Der er
13 kommentarer og 1 løsning
Autonummererings felt
Systemet er opbygget som et front/backend system, begge i Access XP. Nu vil jeg gerne portere til SQL Server 2000, men har et problem med at indsætte nye poster. På min formular er et felt kaldet Ordrenr, som i Access er et Autonummereringsfelt. Jeg har importeret backend'en i SQL Server'en og gjort Ordrenr til primær nøgle. Jeg har også sat Identity = Yes, Identity Seed = 1 og Identity Increment = 1.
Problemet er at jeg ikke får lov til at oprette den nye post! Programmet fejler i koden:
With Forms("ordreseddel") rst.AddNew rst!DATO = Now() rst!ORDRENR = !ORDRENR '*** Fejler her End With
Fejlmeddelelse: "Du har forsøgt at tildele Null-værdien til en variabel, der ikke er af datatypen Variant"
En Debug.Print viser ganske rigtigt at feltet ORDRENR er tomt, men hvorfor?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Niels har ret! Hvis feltet er Identity-field, tildeles værdien automatisk (ligesom i Access). Der er dog den forskel, at du ikke kan SE det nye nummer før posten gemmes. Det kan du i Access.
Dette er i virkeligheden også det mest optimale, da Access' metode kan forårsage konfliker, hvis 2 brugere påbegynder en oprettelse lige efter hinanden.
Jeg har prøvet at give en dummy-værdi og så kører koden til enden, med en fejlmeddelelse: ODBC: Kaldet lykkedes ikke [Microsoft][ODBC SQL Server Driver]Afkortet brøk. (#0) [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot insert the value NULL into column 'id', table 'MinTabel'; column does not allow nulls. INSERT fails. (#515)[Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been terminated (#3621)
If the field is an autonumber then there should be no need to give it a value, it finds the value automatically. If the field is NOT an autonumber field then you MUST give it a value if the field does NOT allow NULL values.
So you should make 100% sure if the field is/is not an autonumber
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.