Addnew не добавляет строки, когда есть аналогичные строки - PullRequest
0 голосов
/ 14 сентября 2009

У меня проблема с тем, что добавление (перезапись существующего ключа 123) не работает, как принудительно обновить строку, если возникает конфликт?

db.OpenRecordset("table1", dbOpenTable)
 .AddNew ' create a new record
 .Fields("key") = "123"
.Update ' stores the new record

код работает, когда в БД еще нет ключа 123

Ответы [ 2 ]

0 голосов
/ 15 сентября 2009

У вас есть этот тег VBA и ado.net. Но ADO.Net не доступен для VBA. Не могли бы вы дать разъяснения?

Предполагается, что вы находитесь в VBA:

Public Sub Example()
Dim db As DAO.Database
Set db = Access.CurrentDb
With db.OpenRecordset("table1", dbOpenDynaset)
    .FindFirst "Key=123"
    If .NoMatch Then
        .AddNew ' create a new record
        .Fields("key") = "123"
        .Update ' stores the new record
    Else
        .Edit
        .Fields("myfield") = "foo"
        .Update
    End If
    .Close
End With
db.Close

End Sub

0 голосов
/ 14 сентября 2009

Если вы используете DataTable, вы хотите использовать метод LoadDataRow, который либо добавляет новую строку, либо обновляет существующую строку. Я не знаю, присутствует ли этот метод в наборе записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...