Jo, undrar ifall det finns nåt snabbt och enkelt sätt att ta reda på vilket ID-nummer (räknare, primärnyckel) den post man just lagt till i en access-databas fick. Lade till posten via en SQL-fråga i accessdatabasen med värden skickade som parametrar... Hej Hmm, borde kanske ha nämnt att det handlar om hantering via ASP... och nej, det är inte addnew utan en SQL-fråga enligt nedan Har för mig att om du använder dig av Få ut ID på den post man just lagt till
Frågar på som en galning nu, men det lär lugna sig snart :-)
/ZapataSv: Få ut ID på den post man just lagt till
Princip svar
Om du gjort AddNew kan du göra Ex. Data1.Recordset.MoveLast
Dim idex As Long
och läsa av idex = Data1.Recordset(0) eller säkrare
idex = Data1.Recordset("Fältets rubrik")
mvh
SvenSv: Få ut ID på den post man just lagt till
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = Connect 'ADODB.Connection
cmd.CommandText = "set_log"
cmd.CommandType = 4
With cmd.Parameters
.Append cmd.CreateParameter("strHeader", 202, 1, 100, strHeader)
.Append cmd.CreateParameter("strMessage", 202, 1, 2500, Replace(strMessage, vbCrLf, "<br>"))
.Append cmd.CreateParameter("strAuthor", 202, 1, 20, Session("Nickname"))
End With
cmd.Execute
Så det enda jag gör är skapar en anslutning till databasen och skickar dit data som läggs till via SQL-frågan inne i Access... skulle vilja slippa att ställa ännu flera frågot (t.ex. här måste jag, för att vara helt säker, söka på strMessage (PM), eftersom rubrik och upphovsman inte behöver vara unikt för varje inlägg... Man kan ju ta och välja det högsta id-värdet, men det kan bli fel ifall nån har lyckats smita emellan och lagt till ett nytt...
/ZapataSv: Få ut ID på den post man just lagt till
Lite exempel i vb som lägger till en användare i User tabellen:
<code>
Private Sub Command1_Click()
Dim conn As ADODB.Connection
Dim rsTemp As Recordset
Dim UserID As Long
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source="& App.Path &"\db2.mdb;" & _
"Persist Security Info=False"
Set rsTemp = New ADODB.Recordset
rsTemp.CursorLocation = adUseServer
rsTemp.Open "SELECT * FROM Users WHERE False", conn, adOpenDynamic, adLockOptimistic, adCmdText
rsTemp.AddNew
UserID = rsTemp("UserID")
rsTemp("UserName") = "Test"
rsTemp.Update
End Sub
</code>
Jag använder vilkoret "WHERE False" för att inte hämta några poster.