我一直在网上寻找解决方法,并且所有答案似乎告诉我我正在做这件事。我继承了这个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
的工作正常。
提前致谢。
答案 0 :(得分:0)
我怀疑您在本地Access数据库上运行SELECT @@IDENTITY
,当然不知道@@IDENTITY
是什么。
我不是百分百肯定,因为你没有显示你的整个代码,我不知道db
是什么。
如果db
为CurrentDB
,那么Set rs = db.OpenRecordset
行会打开DAO.Recordset
,会在您的本地Access数据库上执行查询。
如果我的怀疑是正确的,那么您需要打开通过pass-through query执行SELECT @@IDENTITY
的记录集,因此它实际上在SQL Server上运行。