我将数据从我的vb.net应用程序插入msaccess db。
我对将最后插入的记录添加到表格感到困惑。在MS-SQL中,我们得到了@@ IDENTITY,但它在MSAccess中对我没有用。
那么应该怎样做才能将最后插入的记录添加到表中?
答案 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,这是最新插入的记录。