我们如何获得msaccess查询中的最后一个插入记录
问题描述:
我将数据从我的vb.net应用程序插入msaccess数据库。我们如何获得msaccess查询中的最后一个插入记录
我很困惑的获取最后插入的记录添加到表的方式。在MS-SQL中,我们获得了@@ IDENTITY,但它在MSAccess中并不适用于我。
那么应该如何获取最后插入的记录添加到表中?
答
实施例:
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)
它要求有在桌子上自动增量键。
答
拥有数字(甚至自动增加)主键总是一个好习惯。然后,您可以随时选择MAX,这是最新插入的记录。
答
Access比SQL Server更复杂,因为访问不支持在批处理或输出参数中执行多个语句。
根据MSDN documentation,您需要为RowUpdated事件添加处理程序。然而,在采取这一措施之前,我会尝试在事务中包装插入代码,然后在事务中执行select @@ identity方法。可能不行,但值得一试。
答
据我所知,MS Access不具备获取最后添加行的功能。
实际上,我创建了一个自动增量列(反正通常是主键)。然后我运行此查询时,我渴望得到的最后一排表:
SELECT TOP 1 * FROM [Table] ORDER BY [IdColumn] DESC
它只需以相反的顺序ID列排序表中的行和采取的第一个(这是真的表中的最后一行)。
你是什么意思没有工作?如果您创建了一个对象并针对该对象执行查询,则可以使用@@ identity。 http://*.com/questions/2082427/how-to-retrieve-last-autoincremented-value-in-ms-access-like-identity-in-sql-s,http://*.com/questions/ 5942781/select-identity-not-scoped-by-db-object等。 – Fionnuala 2011-12-16 15:56:37