MS Access/ADO AddNew方法不追加记录
问题描述:
我在MS Access 2003中使用ADO 2.1并使用字段名称和值数组调用ADO记录集的AddNew方法。但是,我没有收到错误消息,该记录没有写入表格。MS Access/ADO AddNew方法不追加记录
我尝试过使用.Update和.Requery命令无效。
任何想法?
Public Function ReadFileViaTextStream(ByVal PortfolioName As String, ByVal SourceFile As String, ByVal TargetTable As String, _
ByRef TargetFields(), ParamArray SourceFields() As Variant)
Dim p_adoRS As ADODB.Recordset
Dim ForWriting() As Variant
Set p_adoRS = New ADODB.Recordset
p_adoRS.Open TargetTable, CurrentProject.Connection, adOpenDynamic, adLockBatchOptimistic, adCmdTable
If p_adoRS.Supports(adAddNew) Then
p_adoRS.AddNew TargetFields(), ForWriting()
p_adoRS.Update
p_adoRS.Requery
End If
TargetTable是一个字符串参数,TargetFields是一个字段名称数组,而ForWriting是一个值数组。
答
对 - 我自己和一位同事发现了这个问题。记录集应该打开为adLockOptimistic,而不是adLockBatchOptimistic。
W3Schools可以帮助:http://www.w3schools.com/ado/prop_rs_locktype.asp – Fionnuala 2010-01-05 12:10:50
这是有帮助的!在我的情况下,我没有意识到相反的情况,adLockBatchOptimistic是必需的。使用adLockOptimistic可以防止我的断开连接的记录集进行批量更新。谢谢。 – ErikE 2011-01-20 18:21:32