Avatar billede puppetmaster Nybegynder
13. januar 2005 - 12:10 Der 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?
Avatar billede puppetmaster Nybegynder
13. januar 2005 - 12:18 #1
Jeg åbner recordset'et med
Set rst = CurrentDb.OpenRecordset("MinTabel", dbOpenDynaset, dbSeeChanges)
Avatar billede puppetmaster Nybegynder
13. januar 2005 - 14:09 #2
Eller på en anden måde:
Når man vil bruge Autonummeringsfelter i SQL Server, hvad gør man så? :)
Avatar billede terry Ekspert
13. januar 2005 - 18:01 #3
you havent received much help on this puppetmaster

If I could see the dB then I think I maybe could help otherwise its not too easy.

eksperten@NOSPANsanthell.dk
remove NOSPAM
Avatar billede terry Ekspert
13. januar 2005 - 18:15 #4
Obvioulsy no good sending me the dB unless you can send your SQL scrots to the SQL db and also some data.

I assume that = !ORDRENR can you SEE the value of this field on the form Forms("ordreseddel")?
Avatar billede nih Novice
13. januar 2005 - 21:24 #5
Er det ikke menningen sqlserveren selv tildeler et ordrenr.

prøv at fjerne: rst!ORDRENR = !ORDRENR

Niels
13. januar 2005 - 21:39 #6
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.
Avatar billede puppetmaster Nybegynder
28. januar 2005 - 14:49 #7
Jeg har forsøgt at fjerne rst!ORDRENR = !ORDRENR men får så en fejl ved    rst.Update
Run-time error: '3146':
ODBC: Kaldet lykkedes ikke :(
Avatar billede puppetmaster Nybegynder
28. januar 2005 - 14:58 #8
Når jeg stepper koden igennem, kan jeg se at værdien af !ORDRENR er lig med NULL
Avatar billede puppetmaster Nybegynder
28. januar 2005 - 15:08 #9
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)
Avatar billede terry Ekspert
28. januar 2005 - 17:31 #10
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
Avatar billede terry Ekspert
03. februar 2005 - 11:30 #11
whats the status here puppetmaster?
Avatar billede puppetmaster Nybegynder
24. juni 2005 - 13:13 #12
Terry, læg et svar. Fandt løsningen for længe siden.
Avatar billede terry Ekspert
24. juni 2005 - 13:17 #13
tak og god weekend
Avatar billede joergen22 Nybegynder
23. januar 2007 - 01:08 #14
Hej,

Kom der en løsning på dette problem?

Jørgen
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