@@ Identity从Access前端返回0(SQL Server Express后端)

时间:2014-10-07 16:01:30

标签: sql-server ms-access identity-column

我一直在网上寻找解决方法,并且所有答案似乎告诉我我正在做这件事。我继承了这个Access / SQL Server数据库,我似乎无法让这件作品发挥作用。

我正在执行一个相当基本的SQL INSERT查询,该查询运行正常。我已经多次检查过了。一旦查询执行,我试图从其中取出身份值以用于我的其余代码。

这是我的代码:

db.Execute (SQLStr)

Set rs = db.OpenRecordset("SELECT @@IDENTITY")
InNo = rs(0)
Debug.Print InNo
rs.Close
db.Close

这始终为InNo返回值0。我已经尝试了几种不同的方法,但我似乎无法使其正常工作。

我也直接在SQL Server中使用了这个方法,查询@@Identity的工作正常。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我怀疑您在本地Access数据库上运行SELECT @@IDENTITY,当然不知道@@IDENTITY是什么。

我不是百分百肯定,因为你没有显示你的整个代码,我不知道db是什么。
如果dbCurrentDB,那么Set rs = db.OpenRecordset行会打开DAO.Recordset在您的本地Access数据库上执行查询。

如果我的怀疑是正确的,那么您需要打开通过pass-through query执行SELECT @@IDENTITY的记录集,因此它实际上在SQL Server上运行。