2013-02-10 81 views
2

在Excel的VBA模塊中。 使用一個ADODB.Connection與此連接字符串:Excel VBA和ADODB:檢索從VBA插入SQL Server的行的自動標識

"Provider=SQLOLEDB;Data Source=MARS;Initial Catalog=automation;Trusted_connection=yes;" 

我想:

  1. INSERT INTO測試(數據)VALUES( '東西')
  2. 檢索自動遞增的身份(測試.data_id)新插入的行。
+0

在這裏,可以幫助您的問題http://stackoverflow.com/questions/976593/how-do-i-return-a-new-identity-column-value-from-an-sqlserver-選擇語句 – Hiten004 2013-02-10 23:19:10

+0

感謝Hiten0004。我早一點看過那個。我無法在VBA中使用它。 – user743094 2013-02-10 23:22:39

+0

您的解決方案在答案中。 – Hiten004 2013-02-11 01:14:12

回答

1
Dim identity as integer 
Dim cn As New ADODB.Connection 
Dim rs As New ADODB.Recordset 

cn.ConnectionString = "whatever..." 
cn.Open 
cn.Execute ("INSERT INTO test(data) VALUES ('hello world')") 
rs.Open "SELECT @@identity AS NewID", cn 
identity = rs.Fields("NewID") 
MsgBox (identity) 
+0

真棒,謝謝我正在尋找的東西,像魔術一樣工作 – spacemonkey 2016-10-14 14:46:08