如何使用VBA更新表中的现有字段

时间:2019-05-29 20:35:42

标签: vba ms-access

我正在使用简单的inbound/outbound date/timestamp开发的程序。一个条目将添加到入站卡车的表中,然后在卡车离开出站时添加条目。在出站表单中是所有已入站但尚未出站的下拉列表。这允许用户选择需要更新的条目。我一直试图将出站信息输入到已创建的字段中。仅当所选条目等于表中的ID时,我才尝试编辑表。有什么我想念的吗?还是有更好的方法来解决这个问题?

我使用将该信息放入表中,但它不会更新所选记录。

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 :(得分:0)

确保将Bound Column的{​​{1}}属性设置为TrailersOnProperty,然后尝试以下操作:

0

您可以对记录集使用表/查询名称或正确的SQL查询。后面带有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 子句的表名都不是。此外,也不能保证打开记录集时,光标将位于第一条记录上。可以轻松到达WHERE