【发布时间】:2011-04-01 18:25:56
【问题描述】:
有没有办法在多用户环境中插入最后一条记录而无需存储过程?
我通过 vba 连接到 sql server。我插入一些记录并调用:
SELECT SCOPE_IDENTITY()
这不起作用。它每次都返回null。
这是完整的代码:
Dim sqlstring1 As String
sqlstring1 = "delete from batchinfo where datapath='" & dpath & "' and analystname='" & aname & "' and reportname='" & rname & "' and batchstate='" & bstate & "'"
Dim rowid_batchinfo As String
rs.Filter = "datapath='" + dpath + "' and analystname='" + aname + "' and reportname='" + rname + "' and batchstate='" + bstate + "'"
If Not rs.EOF Then
rowid_batchinfo = rs.Fields("rowid")
cn.Execute "delete from batchinfo where rowid=" + rowid_batchinfo
cn.Execute "delete from calibration where rowid='" + rowid_batchinfo + "'"
cn.Execute "delete from qvalues where rowid='" + rowid_batchinfo + "'"
End If
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("datapath") = dpath
.Fields("analysistime") = atime
.Fields("reporttime") = rtime
.Fields("lastcalib") = lcalib
.Fields("analystname") = aname
.Fields("reportname") = rname
.Fields("batchstate") = bstate
.Fields("instrument") = instrument
.Update ' stores the new record
End With
Set rs = cn.Execute("SELECT SCOPE_IDENTITY()", , adCmdText)
Set rs = rs.NextRecordset
问题是如何在多用户环境中插入最后一条记录?
【问题讨论】:
标签: sql sql-server vba