我想要做的是通過SQL查詢從在線服務器獲取一些數據,然後循環修改記錄的記錄集。在ADODB記錄集中編輯記錄
我得到試圖修改記錄時出現錯誤:「多步驟操作錯誤檢查每個狀態值。」
我的問題是:有沒有辦法從我從查詢中獲得的記錄集修改記錄?
在這種情況下,如果字段1符合特定條件,我將修改字段2。 (在這種情況下,字段2是一個字符串)
下面是簡化的代碼:
Dim adoConn As ADODB.Connection
Dim locRS As New ADODB.Recordset, proRS As ADODB.Recordset
Dim strConnection As String
Set getSQL = New ADODB.Recordset
'Set Objects
Set adoConn = New ADODB.Connection
'Specify connection string
strConnection = "User ID=xxx; Password=xxx;Data Source=xxx;Provider=OraOLEDB.Oracle"
'Open the connection
adoConn.Open (strConnection)
'Set up recordset properties
getSQL.CursorType = adOpenStatic
getSQL.CursorLocation = adUseClient
getSQL.LockType = adLockBatchOptimistic
'Import the data
getSQL.Open "SELECT FIELD1, FIELD2 FROM TABLE", adoConn, adOpenStatic, adLockOptimistic
Set getSQL.ActiveConnection = Nothing
getSql.Update
'Loop through data
getSQL.MoveFirst
Do While Not stockRS.EOF
'If cetrain condition is met then modify the null column
if getSQL!FIELD1=CRITERIA then
'Error here
getSQL!FIELD2="SOME STRING"
End If
getSQL.MoveNext
Loop
'Close
adoConn.Close
Set adoConn = Nothing
仍然沒有。甚至試圖深度複製記錄集([鏈接](http://stackoverflow.com/questions/25553594/deep-copy-or-clone-an-adodb-recordset-in-vba))。但仍然沒有。它不是一個場屬性? – 2014-08-29 12:20:25
我發現了另一個問題 - 請參閱更新的答案。 – nempnett 2014-09-02 08:52:34
如果仍然無法正常工作,您可以發佈包含我所有建議的最新版本代碼,以便我們再看一次。 – nempnett 2014-09-04 09:18:03