我们如何在ms访问查询中获取最后插入的记录

时间:2011-12-16 11:06:18

标签: sql vb.net ms-access

我将数据从我的vb.net应用程序插入msaccess db。

我对将最后插入的记录添加到表格感到困惑。在MS-SQL中,我们得到了@@ IDENTITY,但它在MSAccess中对我没有用。

那么应该怎样做才能将最后插入的记录添加到表中?

4 个答案:

答案 0 :(得分:6)

示例:

Dim db As Database
Set db = CurrentDb

db.Execute "INSERT INTO Table1 (atext) Values('abc')", dbFailOnError

Dim rs As dao.Recordset

Set rs = db.OpenRecordset("select @@identity")
Debug.Print rs(0)

确实要求桌面上有一个自动增量键。

答案 1 :(得分:0)

在Access中比SQL Server更复杂,因为访问不支持在批处理或输出参数中执行多个语句。

根据MSDN documentation,您需要为RowUpdated事件添加处理程序。

然而,在尝试这个之前,我会尝试在事务中包装插入代码,然后在事务中执行select @@ identity方法。可能不行,但值得一试。

答案 2 :(得分:0)

据我所知,MS Access没有获取最后添加的行的功能。

实际上,我创建了一个自动增量列(无论如何通常都是主键)。然后当我想要获取表中的最后一行时运行此查询:

SELECT TOP 1 * FROM [Table] ORDER BY [IdColumn] DESC

它只是按相反顺序对ID列中的行进行排序,然后取第一行(实际上是表中的最后一行)。

答案 3 :(得分:-1)

拥有一个数字(甚至自动增量)主键始终是一个好习惯。然后你总是可以选择MAX,这是最新插入的记录。