Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Метод MS Access/ADO AddNew не добавляет запись

Автор вопроса: PhilОтветов: 1

Я использую ADO 2.1 в MS Access 2003 и вызываю метод AddNew набора записей ADO, используя массив имен полей и массив значений. Однако я не получаю сообщений об ошибках, запись не записывается в таблицу.

Я пытался следовать команде с .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 - это массив значений.

ms-access

Ответы

Ответ 1 · рейтинг 3 · Phil

Правильно - Я и коллега нашли проблему. Набор записей следует открывать как adLockOptimistic, а не как adLockBatchOptimistic.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы