---
title: "ID-nummer på posten som skapades?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/10572-id-nummer-på-posten-som-skapades"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Lukaspojken"
published: "2001-07-16T00:12:00.000Z"
updated: "2001-07-16T09:31:00.000Z"
replies: 16
views: 315
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/10572-id-nummer-på-posten-som-skapades"
---

# ID-nummer på posten som skapades?

## #1 — Lukaspojken, 2001-07-16T00:12Z

Jag gör två insert och skulle behöva få det första postens msgID-nummer hur får jag tag på det?

```
	strSQL = "INSERT INTO forum (Thread_ID, Thread_ReplyOrder, Thread_Level, msgFROM, msgDATE, msgTIME, msgTopic, msgTEXT, IP) VALUES " &_
	"(" & ThreadID & ", " & ThreadReplyOrder & ", " & cint(ThreadLevel) + 1 &_
	", '" & msgFrom & "', #" & dteDatum & "#, '" & Svtid & "', '" & msgTopic & "', '" & msgText & "', '" & Ip & "')"
	Connect.Execute(strSQL)

	strSQL = "INSERT INTO forumUpdate (msgID, msgUpdate, msgUptime) VALUES (" & ?????MSGID???? & ", #" & dteDatum & "#, '" & Svtid & "')"
	Connect.Execute(strSQL)
```

Permalänk: https://www.webforum.nu/p/10572

## #2 — @nders, 2001-07-16T04:28Z

om du använder sql server eller access 2000 kan du ställa denna fråga efter din första insert:

```
strSQL = "SELECT @@IDENTITY"
```

mvh,

Permalänk: https://www.webforum.nu/p/277415

## #3 — Lukaspojken, 2001-07-16T07:15Z

Jag använder access 97...hmmm...hur löser jag det då...:)

Permalänk: https://www.webforum.nu/p/277416

## #4 — Lukaspojken, 2001-07-16T07:46Z

Är den här koden att föredra:

	strSQL = "SELECT msgID FROM forum WHERE msgFROM=" & msgFrom & " AND msgDate=" & dteDatum & " AND msgTime=" & Svtid
	Set RecSet = Connect.Execute(strSQL)

		msgID = RecSet("msgID")		

	RecSet.Close
	Set RecSet = nothing

Jag vet inte riktigt vad jag ska använda som fält identifierare än msgFrom, msgDatum och msgTime...känns lite klumpigt...

Permalänk: https://www.webforum.nu/p/277417

## #5 — emission, 2001-07-16T08:06Z

För att åstadkomma detta säkert med Access97 ska du använda ADO-metoderna (AddNew etc.) för att kunna plocka ut ID:t. Sök på IDENTITY här på forumet, så ordnar det sig.

/e

Permalänk: https://www.webforum.nu/p/277418

## #6 — LarsG, 2001-07-16T08:08Z

<http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=79>

Permalänk: https://www.webforum.nu/p/277419

## #7 — Lukaspojken, 2001-07-16T08:41Z

Jag får inte det att fungera....så här skrev jag

```
	Set RecSet = Server.CreateObject("ADODB.Recordset")

	RecSet.Open forum, Connect, adOpenKeySet, adLockOptimistic, adCmdTable

	RecSet.AddNew
	RecSet("Thread_ID") = ThreadID
	RecSet("Thread_ReplyOrder") = ThreadReplyOrder
	RecSet("Thread_Level") = cint(ThreadLevel) + 1
	RecSet("msgFROM") = msgFrom
	RecSet("msgDATE") = dteDatum
	RecSet("msgTIME") = Svtid
	RecSet("msgTopic") = msgTopic
	RecSet("msgTEXT") = msgText
	RecSet("Ip") = Ip
	RecSet.Update
	msgID = RecSet("nameOfAutonumberField")

	RecSet.Close
	Set RecSet = nothing
```

Detta felmeddelande får jag:

```
ADODB.Recordset error '800a0bb9' 

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
```

Och den pekar på denna rad:

```
RecSet.Open forum, Connect, adOpenKeySet, adLockOptimistic, adCmdTable
```

Permalänk: https://www.webforum.nu/p/277420

## #8 — @nders, 2001-07-16T08:43Z

har du inkluderat adovbs.inc på sidan?

Permalänk: https://www.webforum.nu/p/277421

## #9 — LarsG, 2001-07-16T08:44Z

Har du inkluderat adovbs.inc? Den innehåller definitioner för konstanterna 

adOpenKeySet, 
adLockOptimistic, 
adCmdTable

Permalänk: https://www.webforum.nu/p/277422

## #10 — Lukaspojken, 2001-07-16T08:59Z

Den är inkluderad...det verkar vara nåt lurt med adOpenKeySet, adLockOptimistic, adCmdTable 

Jag testade att skriva siffror istället men samma fel uppstod.

Men skrev jag
3,3 bara så kom den enda ner till raden

msgID = RecSet("nameOfAutonumberField")

och då blev det ett felmeddelande där istället. Att den inte kunde hitta det.

Permalänk: https://www.webforum.nu/p/277423

## #11 — kristoffer, 2001-07-16T08:59Z

Jag förstod inte @nders kod:

```
strSQL = "SELECT @@IDENTITY"
```

Jag antar att det måste vara fel att efter den första INSERTen göra:

```
strSQL = "SELECT TOP 1 id FROM tabell ORDER BY id DESC"
```

Ersätter

```
strSQL = "SELECT @@IDENTITY id FROM tabell"
```

den felaktiga koden? Och om så är fallet, vad händer om en annan användare hinner göra en INSERT före?

Jag kör SQL Server.

Permalänk: https://www.webforum.nu/p/277424

## #12 — Lukaspojken, 2001-07-16T09:01Z

Men jag har inte access 2000 så jag kan inte skriva det så...:(

Permalänk: https://www.webforum.nu/p/277425

## #13 — @nders, 2001-07-16T09:07Z

**kristoffer**:

```
strSQL = "SELECT @@IDENTITY id FROM tabell"
```

sa jag väl inte?

```
strSQL = "SELECT @@IDENTITY"
```

@@identity är en global variabel som innehåller räknarvärdet på den *av denna användare* senast inlagda posten. 

använder man sql server kan man dessutom göra så här om man vill:

```
strSQL = "insert bla (bla) values ('bla); select @@identity"
set objRS = objConn.execute(strSQL)
senasteid = objRS(0)
```

mvh,

Permalänk: https://www.webforum.nu/p/277426

## #14 — LarsG, 2001-07-16T09:08Z

Heter din räknarkolumn

nameOfAutonumberField

?

OT:
kristoffer
Det skall enbart vara

```

select @@identity
```

dvs, man skall inte ange något tabellnamn. Det värde som returneras är det senaste som har genererats vid en insert/update för någon tabell med räknare **inom denna connection**. Det påverkas inte av vad någon annan användare gör.

Permalänk: https://www.webforum.nu/p/277427

## #15 — kristoffer, 2001-07-16T09:23Z

Jag testade och det fungerade! Det var värst vad ni kan mycket. Finns det något inom ämnet ni inte kan? :) Vilka siter har ni byggt?

Permalänk: https://www.webforum.nu/p/277428

## #16 — emission, 2001-07-16T09:28Z

Det ska vara

```
RecSet.Open "forum", Connect, adOpenKeySet, adLockOptimistic, adCmdTable
```

Permalänk: https://www.webforum.nu/p/277429

## #17 — Lukaspojken, 2001-07-16T09:31Z

Jag försökte med alla möjliga kombinationer. Jag tog bort adCmdTable och då fungerade det.

```
Visa = "SELECT * FROM forum"
RecSet.Open Visa, Connect, 1, 3
```

Tack för allt...nu ska jag förhoppningsvis inte störa mer...:) tack igen...

Permalänk: https://www.webforum.nu/p/277430

---

Tråden på webben: https://www.webforum.nu/amne/asp/10572-id-nummer-på-posten-som-skapades
