2015-06-02 57 views
2

我使用ADODB連接連接到Excel VBA中的Access數據庫並獲取記錄集的記錄。我想更新記錄集,但是當我更新記錄集時,我還更新了數據庫中的表。是否有可能更新記錄集,但不是數據庫?這裏是我的代碼,更新記錄集,不更新數據庫

Dim con As New ADODB.Connection 
Dim rs As New ADODB.Recordset 

con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\jasons\Documents\UPD.accdb" 
rs.Open "SELECT ITEM, SL AS SL FROM Table2", con, adOpenDynamic, adLockPessimistic 

rs.MoveFirst 
    Do 
     rs.Update "SL", 250 
     rs.MoveNext 
    Loop Until rs.EOF 

con.Close 
Set con = Nothing 
+0

這是可能的,你是尋找「斷開記錄集」,檢查http://www.devguru.com/features/tutorials/DisconnectedRecordsets/tutDisconnRS – pony2deer

+0

感謝pony2deer完美的工作。如果您不介意,我會將我的代碼作爲答案發布。 –

回答

2

多虧了pony2deer我調整我的代碼鏈接只有通過增加

rs.CursorLocation = adUseClient 
rs.LockType = adLockBatchOptimistic 

下面是完整的代碼,

Dim con As New ADODB.Connection 
Dim rs As New ADODB.Recordset 
sql = "SELECT * FROM Table2" 

con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\jasons\Documents\UPD.accdb" 
rs.CursorLocation = adUseClient 
rs.LockType = adLockBatchOptimistic 
rs.Open sql, con 

Set rs.ActiveConnection = Nothing 
con.Close 

rs.MoveFirst 
    Do 
     rs.Update "SL", 20 
     rs.MoveNext 
    Loop Until rs.EOF