2010-01-05 57 views
1

我在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是一個值數組。

回答

3

對 - 我自己和一位同事發現了這個問題。記錄集應該打開爲adLockOptimistic,而不是adLockBatchOptimistic。

+0

W3Schools可以幫助:http://www.w3schools.com/ado/prop_rs_locktype.asp – Fionnuala 2010-01-05 12:10:50

+0

這是有幫助的!在我的情況下,我沒有意識到相反的情況,adLockBatchOptimistic是必需的。使用adLockOptimistic可以防止我的斷開連接的記錄集進行批量更新。謝謝。 – ErikE 2011-01-20 18:21:32