MS Access/ADO AddNew 方法不附加记录
Posted
技术标签:
【中文标题】MS Access/ADO AddNew 方法不附加记录【英文标题】:MS Access/ADO AddNew method not appending record 【发布时间】:2010-01-05 10:09:22 【问题描述】:我在 MS Access 2003 中使用 ADO 2.1,并使用字段名称数组和值数组调用 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 是值数组。
【问题讨论】:
【参考方案1】:正确 - 我和一位同事发现了问题。记录集应以 adLockOptimistic 而非 adLockBatchOptimistic 的形式打开。
【讨论】:
这很有帮助!就我而言,我没有意识到相反的情况,即 adLockBatchOptimistic 是必需的。使用 adLockOptimistic 可以防止我断开连接的记录集进行批量更新。谢谢。以上是关于MS Access/ADO AddNew 方法不附加记录的主要内容,如果未能解决你的问题,请参考以下文章
Access VBA 中的 AddNew 不添加新行或报告任何错误