MS Access с VBA не редактировать строки - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть функция в модуле для получения данных из программного обеспечения третьей части.И у меня есть подразделение, чтобы получить больше данных из того же программного обеспечения третьей части.Вместо того, чтобы редактировать ту же строку, вспомогательная функция добавляет только новую строку с информацией, полученной из другого программного обеспечения.Но мне нужна информация в строке, которая уже есть в таблице.

Это код из подфункции.

Sub Entregue()
Dim base As Database
Dim Itens_Sislog As Recordset

Set base = CurrentDb()
Set Itens_Sislog = base.OpenRecordset("Itens_Sislog")

Dim i As Integer
Dim linha As Integer

If Copiar(1, 2, 8) = "SLCM0750" Then
Colar 13, 3, "X"
Teclar "@E"
End If

If Copiar(1, 2, 8) = "SLCM0751" Then
Itens_Sislog.Edit 
Itens_Sislog("Entregue_em") = Copiar(14, 9, 11)
Itens_Sislog.Update
Teclar "@3"
Teclar "@3"
End If

End Sub

Если я изменю это Itens_Sislog.Edit к этому Itens_Sislog.addnew , он работает и добавляет новую информацию.Но я хочу отредактировать строку, чтобы добавить эту новую информацию в другой столбец, а не в другую строку.

Редактировать: функция и подпрограмма работают одновременно (я не знаю, важна ли эта информация).Когда я использую .addnew, это результат:

Захват экрана

У кого-нибудь есть подсказка?

1 Ответ

0 голосов
/ 11 декабря 2018

Вы просто открываете набор записей, поэтому любое редактирование будет иметь только первую запись.

Сначала выполните поиск:

Itens_Sislog.FindFirst "SomeField = " & SomeValue & ""    ' or for text:
Itens_Sislog.FindFirst "SomeField = '" & SomeValue & "'"

, чтобы найти запись для редактирования.

Для примера и т. Д. Документ активен:

Метод Recordset.FindFirst (DAO)

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