strSQL = "select cItem from " & tvwType.SelectedItem.Key
Set rsClient = New ADODB.Recordset
rsClient.Open strSQL, Flcon, adOpenKeyset, adLockBatchOptimisticWith rsClient
'插入一些测试数据[AddNew]
.AddNew "cItem", "A123"
.AddNew "cItem", "B123"
.AddNew "cItem", "C123"
.AddNew "cItem", "D123"
.AddNew "cItem", "E123"
'删除C123
.Filter = "cItem='C123'"
rsClient.Delete
'修改D123
.Filter = "cItem='D123'"
.Fields(0) = "'D456'"
.UpdateBatch
End With'1.以上代码,能够正常执行且不产生错误,但所有的修改并未影响到记录集..不解!
'2.同时上面的代码中修改指定记录的方法是不是正确的?有否其它合适的方法?
'3.在批更新模式下,要注意哪些问题及常见的要捕获的错误(多用户端的情况下)..?谢谢各位顶贴回复!
Set rsClient = New ADODB.Recordset
rsClient.Open strSQL, Flcon, adOpenKeyset, adLockBatchOptimisticWith rsClient
'插入一些测试数据[AddNew]
.AddNew "cItem", "A123"
.AddNew "cItem", "B123"
.AddNew "cItem", "C123"
.AddNew "cItem", "D123"
.AddNew "cItem", "E123"
'删除C123
.Filter = "cItem='C123'"
rsClient.Delete
'修改D123
.Filter = "cItem='D123'"
.Fields(0) = "'D456'"
.UpdateBatch
End With'1.以上代码,能够正常执行且不产生错误,但所有的修改并未影响到记录集..不解!
'2.同时上面的代码中修改指定记录的方法是不是正确的?有否其它合适的方法?
'3.在批更新模式下,要注意哪些问题及常见的要捕获的错误(多用户端的情况下)..?谢谢各位顶贴回复!
If Cel.Text = "" Then '删除
rsClient.Filter = "cItem='" & grdList.ActiveCell.Tag & "'"
rsClient.Delete
Else '修改
'''''''''''''''''''''''''''''''''''方法1 遍历查找后更新
Do Until rsClient.EOF
If rsClient!cItem = Cel.Tag Then
rsClient!cItem = Cel.Text
Exit Do
End If
rsClient.MoveNext
Loop
'''''''''''''''''''''''''''''''''''方法2 使用Filter过滤定位,然后更新
'rsClient.Filter = ""
'rsClient.Filter = "cItem='" & Cel.Tag & "'"
'rsClient!cItem = Cel.Text
'''''''''''''''''''''''''''''''''''
End If
rsClient.UpdateBatch方法1能成功更新。
方法2被执行时不提示任何信息,但数据并未更新到。(同时,方法2中若更新前/后的值中包含单引号,将出现提示..错误代码:3001,参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。)请问,怎样调试方法2,能够在批模式adLockBatchOptimistic下使用Filter定位记录并实现更新。此问解决,50分全送..!!谢谢
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
execute方法不能实现对一个记录集的N次更新刷新..
我要的是在批更新模式下操作。实现成批更新...UpdateBatch