我有一個JET以自動編號為主鍵的表,我想知道如何在插入一行后檢索此數(shù)字。我曾想過MAX()用來檢索具有最高值的行,但我不確定它有多可靠。一些示例代碼:Dim query As StringDim newRow As Integerquery = "INSERT INTO InvoiceNumbers (date) VALUES (" & NOW() & ");"newRow = CurrentDb.Execute(query)現(xiàn)在我知道這不起作用,因為Execute()不會返回主鍵的值,但這基本上是我正在尋找的那種代碼。我將需要使用新行的主鍵來更新另一個表中的多個行。這樣做最簡單/最易讀的方法是什么?
3 回答

楊__羊羊
TA貢獻1943條經(jīng)驗 獲得超7個贊
在您的示例中,因為您使用CurrentDB來執(zhí)行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
我曾經(jīng)通過打開AddOnly記錄集并從那里獲取ID 來進行INSERT ,但這里的效率要高得多。請注意,它不需要ADO。
- 3 回答
- 0 關(guān)注
- 796 瀏覽
添加回答
舉報
0/150
提交
取消