Как я могу обновить существующее поле в таблице, используя VBA - PullRequest
0 голосов
/ 29 мая 2019

Программа, над которой я работаю в простом inbound/outbound date/timestamp. Запись добавляется в таблицу для входящего грузовика , а затем, когда грузовик покидает исходящую запись, добавляется. В исходящей форме есть выпадающий список всего, что было входящим, но не исходящим. Это позволяет пользователю выбирать, какая запись должна быть обновлена. Я застрял, пытаясь получить информацию для исходящей части в уже созданном поле. Я пытался редактировать таблицу, только если выбранная запись равна идентификатору в таблице. Есть что-то, чего мне не хватает? или есть лучший способ подойти к этому?

Я получил информацию в таблицу с помощью, но она не обновляет выбранную запись.

Private Sub Inbound_Click()
    Set mydb = DBEngine(0)(0)
    Set Sitelog = mydb.OpenRecordset("T_Sitelog")

    Sitelog.AddNew
    Sitelog![Trailer_Type] = Me![TrailerType]
    Sitelog![Trailer_Num] = Me![TrailerNum]
    Sitelog![Carrier] = Me![Carrier]
    Sitelog![T/D_IN] = Me![TDStamp_IN]
    Sitelog![Inbound_Comments] = Me![Comments_IN]
    Sitelog.Update
End Sub

Private Sub Outbound_Click()
    Set mydb = DBEngine(0)(0)
    Set Sitelog = mydb.OpenRecordset("T_Sitelog Where ID = " & _
        Me!TrailersOnProperty.Column(0))

    Sitelog.Edit
    Sitelog![T/D_OUT] = Me![TDStamp_OUT]
    Sitelog![Outbound_Comments] = Me![Comments_OUT]
    Sitelog.Update
End Sub

Я, кроме результата, обновляю уже существующую запись, добавленную во входящую часть. Дата / отметка времени и комментарии должны быть обновлены в таблице.

1 Ответ

0 голосов
/ 30 мая 2019

Убедитесь, что для свойства Bound Column TrailersOnProperty установлено значение 0, а затем попробуйте следующее:

Private Sub Outbound_Click()
    Set mydb = DBEngine(0)(0)
    Set Sitelog = mydb.OpenRecordset("SELECT * FROM T_Sitelog WHERE ID = " & Me!TrailersOnProperty)
    Sitelog.MoveFirst
    Sitelog.Edit
    Sitelog![T/D_OUT] = Me![TDStamp_OUT]
    Sitelog![Outbound_Comments] = Me![Comments_OUT]
    Sitelog.Update
End Sub

Вы можете использовать имя таблицы / запроса или правильный запрос SQL для наборов записей,Имя таблицы, за которым следует предложение WHERE, не является ни тем, ни другим.Также нет гарантии, что при открытии набора записей курсор будет на первой записи.Это может быть легко в EOF.

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