我將數據從我的vb.net應用程序插入msaccess數據庫。我們如何獲得msaccess查詢中的最後一個插入記錄
我很困惑的獲取最後插入的記錄添加到表的方式。在MS-SQL中,我們獲得了@@ IDENTITY,但它在MSAccess中並不適用於我。
那麼應該如何獲取最後插入的記錄添加到表中?
我將數據從我的vb.net應用程序插入msaccess數據庫。我們如何獲得msaccess查詢中的最後一個插入記錄
我很困惑的獲取最後插入的記錄添加到表的方式。在MS-SQL中,我們獲得了@@ IDENTITY,但它在MSAccess中並不適用於我。
那麼應該如何獲取最後插入的記錄添加到表中?
實施例:
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)
它要求有在桌子上自動增量鍵。
擁有數字(甚至自動增加)主鍵總是一個好習慣。然後,您可以隨時選擇MAX,這是最新插入的記錄。
Access比SQL Server更復雜,因爲訪問不支持在批處理或輸出參數中執行多個語句。
根據MSDN documentation,您需要爲RowUpdated事件添加處理程序。然而,在採取這一措施之前,我會嘗試在事務中包裝插入代碼,然後在事務中執行select @@ identity方法。可能不行,但值得一試。
據我所知,MS Access不具備獲取最後添加行的功能。
實際上,我創建了一個自動增量列(反正通常是主鍵)。然後我運行此查詢時,我渴望得到的最後一排表:
SELECT TOP 1 * FROM [Table] ORDER BY [IdColumn] DESC
它只需以相反的順序ID列排序表中的行和採取的第一個(這是真的表中的最後一行)。
你是什麼意思沒有工作?如果您創建了一個對象並針對該對象執行查詢,則可以使用@@ identity。 http://stackoverflow.com/questions/2082427/how-to-retrieve-last-autoincremented-value-in-ms-access-like-identity-in-sql-s,http://stackoverflow.com/questions/ 5942781/select-identity-not-scoped-by-db-object等。 – Fionnuala 2011-12-16 15:56:37