为了账号安全,请及时绑定邮箱和手机立即绑定

最后插入行的自动编号值 - MS Access / VBA

最后插入行的自动编号值 - MS Access / VBA

HUX布斯 2019-09-03 15:36:22
我有一个JET以自动编号为主键的表,我想知道如何在插入一行后检索此数字。我曾想过MAX()用来检索具有最高值的行,但我不确定它有多可靠。一些示例代码:Dim query As StringDim newRow As Integerquery = "INSERT INTO InvoiceNumbers (date) VALUES (" & NOW() & ");"newRow = CurrentDb.Execute(query)现在我知道这不起作用,因为Execute()不会返回主键的值,但这基本上是我正在寻找的那种代码。我将需要使用新行的主键来更新另一个表中的多个行。这样做最简单/最易读的方法是什么?
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

在您的示例中,因为您使用CurrentDB来执行INSERT,所以您自己更难。相反,这将工作:


  Dim query As String

  Dim newRow As Long  ' note change of data type

  Dim db As DAO.Database


  query = "INSERT INTO InvoiceNumbers (date) VALUES (" & NOW() & ");"

  Set db = CurrentDB

  db.Execute(query)

  newRow = db.OpenRecordset("SELECT @@IDENTITY")(0)

  Set db = Nothing

我曾经通过打开AddOnly记录集并从那里获取ID 来进行INSERT ,但这里的效率要高得多。请注意,它不需要ADO。


查看完整回答
反对 回复 2019-09-03
  • 3 回答
  • 0 关注
  • 769 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信