我有一个自动编号作为主键的JET表,我想知道如何在插入一行后检索此编号。我曾想过使用MAX()来检索具有最高值的行,但我不确定这将是多么可靠。一些示例代码:最后插入行的自动编号值 - MS Access/VBA
Dim query As String
Dim newRow As Integer
query = "INSERT INTO InvoiceNumbers (date) VALUES (" & NOW() & ");"
newRow = CurrentDb.Execute(query)
现在我知道,这是行不通的,因为Execute()
将不会返回主键的值,但是这基本上是我要找的那种代码。我将需要使用新行的主键来更新另一个表中的多个行。
这样做最简单/最可读的方法是什么?
DAO可以做SELECT @@ IDENTITY,太 - 你不需要ADO。我一直这样做:lngID = db.OpenRecordset(“SELECT @@ IDENTITY”)(0),其中“db”是用于执行插入的数据库变量。我不再打开记录集并为此添加。 – 2009-10-27 20:03:44