Avatar billede debugger Nybegynder
02. juli 2001 - 12:27 Der er 4 kommentarer og
1 løsning

adgang til autonumreringsfelt i Access

Jeg har flg stum kode, hvor jeg tilføjer en post til en tabel i en Access DB. Den post, der bliver oprettet får et ID (Primær nøgle værdi) tildelt af Access, da der er tale om et autonumreringsfelt. Det er den værdi jeg gerne vil have tildelt en variabel (eller gjort tilgængelig i reten af koden)

Posterne bliver oprettet, og der bliver ikke meldt fejl. Men variablen, der skulle indeholde den omtalte værtdi er \"tom\", når jeg laver en response.write

Koden er som følger (DB er et \"ADODB.Recordset\" objekt):

db.cursortype = adOpenKeySet
db.open \"Vare_Varianter\", conn, adUseServer, adLockOptimistic, adCmdTable

db.addnew
                       
db(\"Navn\") = navn
db(\"Nummer\") = nummer

db.update

id = db(\"ID\")

db.close

response.write(\"Den nye post har fået ID nummeret: \" & id)
Avatar billede keysersoze Ekspert
02. juli 2001 - 12:50 #1
Avatar billede debugger Nybegynder
03. juli 2001 - 09:18 #2
keysersoze: jeg er sikker på, metoden virker, men mit mål er, at få ovenstående kode til at give pote. Det er noget jeg har læst i en ASP bog, så det _må_ simpelthen virke.

Men tak alligevel :o)
Avatar billede debugger Nybegynder
03. juli 2001 - 09:22 #3
Til andre intereserede: keysersoze\'s forslag går på SQL / INSERT, hvor man gør brug af SQL Systemvariablen @IDENTITY.

Det jeg leder efter er en metode, hvor man kan få adgang til det samme, når man tilføjer til databasen med .addnew / .update metoden.
Avatar billede plexx Nybegynder
04. juli 2001 - 00:35 #4
En sådan metode findes hvis ikke.
Avatar billede debugger Nybegynder
04. juli 2001 - 16:18 #5
Jo da.. ovenstående kode virker når man retter den lidt.

ADO Postsætmarkørerne og låsetypen skal bare stilles rigtigt. En af forcerne ved at bruge .addnew metoden frem for INSERT INTO (SQL) er, at man kan få adgang til netop autonummereringsværdien på den post, man er ved at sætte ind i databasen

jeg kan henvise til et eksempel på http://www.asp24h.com/asp24h/run/run1502.asp

Jeg har da også fået det til at virke ved at bruge:

db.cursorlocation = adUseServer
db.cursortype = adOpenKeySet       
db.locktype = adLockOptimistic
db.open \"Variant_Vaerdier\", conn, , , adCmdTable

i stedet for

db.cursortype = adOpenKeySet
db.open \"Vare_Varianter\", conn, adUseServer, adLockOptimistic, adCmdTable

og det virker ganske glimrende.. hurra for ADO! :o)
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
Kurser inden for grundlæggende programmering

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