首页 > 解决方案 > 使用对文本框的更改更新表格

问题描述

我有一张车辆信息表(每辆车 5 个字段),每人拥有多辆车的功能。我将所有 5 个字段和所有车辆都放入一个多维数组并根据车辆编号(即 vic1、vic2 ...)填充一个文本框。如果任何车辆信息发生变化,我需要更新表格。每辆车都有一个不同的文本框。我不确定如何进行更改(添加/删除/更新)并将其加载回表中。

Private Sub cmdDone_Click()
  strMake1 = VicArray(0, 0)
  strModel1 = VicArray(0, 1)
  strYear1 = VicArray(0, 2)
  strColor1 = VicArray(0, 1)
  strPlate1 = VicArray(0, 1)

  strMake2 = VicArray(1, 0)
  strModel2 = VicArray(1, 1)
  strYear2 = VicArray(1, 2)
  strColor2 = VicArray(1, 3)
  strPlate2 = VicArray(1, 4)
.
.
.
  strMake6 = VicArray(5, 0)
  strModel6 = VicArray(5, 1)
  strYear6 = VicArray(5, 2)
  strColor6 = VicArray(5, 3)
  strPlate6 = VicArray(5, 4)

strUpdate = "Update VehicleInfo SET " & _
"Vic1License = '" & strPlate1 & "',Vic1Make = '" & strMake1 & "', Vic1Model = '" & strModel1 & "', Vic1Year = '" & strYear1 & "', Vic1Color = '" & strColor1 & " Handicapped= " & strhandicap & "'," & _
"Vic2License = '" & strPlate2 & "',Vic2Make = '" & strMake2 & "', Vic2Model = '" & strModel2 & "', Vic2Year = '" & strYear2 & "', Vic2Color = '" & strColor2 & "'," & _
"Vic3License = '" & strPlate3 & "',Vic3Make = '" & strMake3 & "', Vic3Model = '" & strModel3 & "', Vic3Year = '" & strYear3 & "', Vic3Color = '" & strColor3 & "'," & _
"Vic4License = '" & strPlate4 & "',Vic4Make = '" & strMake4 & "', Vic4Model = '" & strModel4 & "', Vic4Year = '" & strYear4 & "', Vic4Color = '" & strColor4 & "'," & _
"Vic5License = '" & strPlate5 & "',Vic5Make = '" & strMake5 & "', Vic5Model = '" & strModel5 & "', Vic5Year = '" & strYear5 & "', Vic5Color = '" & strColor5 & "'," & _
"Vic6License = '" & strPlate6 & "',Vic6Make = '" & strMake6 & "', Vic6Model = '" & strModel6 & "', Vic6Year = '" & strYear6 & "', Vic6Color = '" & strColor6 & "'," & _
" WHERE ( LastName= '" & TxtLast & "', AND FirstName= '" & txtFirst & "')"

DoCmd.RunSQL strUpdate

标签: vbams-access

解决方案


我认为您正在尝试手动执行 Access 可以自动为您执行的操作。

我建议将表单的记录源设置为表 VehicleInfo。然后,将每个控件的控件源设置为该表的字段。

试试这篇文章,它应该可以很好地介绍如何更有效地使用 Access。

https://support.office.com/en-us/article/introduction-to-forms-e8d47343-c937-44e8-a80f-b6a83a1fa3ae

我认为您应该针对从第一个表单中选择的名称过滤您的 VehicleInfo 表单。第一种形式可能是这样的:

public sub btn_Click()
    DoCmd.OpenForm "VehicleInfoForm", , , "Name = '" & selectedName & "'"
end sub

然后车辆信息表单将显示该用户的信息。每当他们对文本框进行更改时,都会在他们关闭表单时保存。假设它都正确绑定。


推荐阅读