2015-06-02 60 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