访问VBA:更改记录时,数组值也会更改

时间:2018-10-15 15:00:33

标签: vba ms-access access-vba ms-access-2016

我有一段代码,旨在在执行时复制一条记录,但是它正在创建空白记录。

我设法将错误跟踪到了用来保存旧记录中的字段值的数组。似乎在运行git config --list时,保存值的数组将更改其所有值以匹配此新记录,换句话说,将它们全部变为.AddNewnull

这是我正在使用的代码:

0

记录集在这里引用:

  • rs1是当前订单中的商品
  • rs2是库存表/查询

With rs1 .MoveLast .MoveFirst Do Until .EOF rs2.FindFirst "ItemID = " & !ItemID rs2.Edit rs2!ItemQuantity = rs2!ItemQuantity - !OrderQuantity TempArray = Array(rs2!ItemCode, rs2![Dia/Size], rs2!ItemType, rs2!Description, rs2!ItemAdded, rs2!ItemSaleValue, rs2!ItemBuyValue, rs2!ItemLocation, rs2!ItemCondition, rs2!ItemOrigin, rs2!ItemOriginDescription, rs2!ItemHistory) rs2.Update rs2.AddNew rs2!ItemCode = TempArray(0) rs2![Dia/Size] = TempArray(1) rs2!ItemType = TempArray(2) rs2!Description = TempArray(3) rs2!ItemAdded = TempArray(4) rs2!ItemSaleValue = TempArray(5) rs2!ItemBuyValue = TempArray(6) rs2!ItemLocation = TempArray(7) rs2!ItemCondition = TempArray(8) rs2!ItemOrigin = TempArray(9) rs2!ItemOriginDescription = TempArray(10) rs2!ItemHistory = TempArray(11) rs2!ItemBooked = True rs2!ItemBookedBy = Me.OrderBy rs2!ItemBookedWhen = Now() rs2!ItemBookedNote = Me.OrderID rs2.Update .MoveNext Loop End With 是我遇到的麻烦的数组,因此,如果有人可以指出阻止其更改的方法或执行此操作的更好方法,将不胜感激。

1 个答案:

答案 0 :(得分:1)

这是一个常见错误。您正在将记录集的字段对象而不是记录集字段值添加到数组中。

以下是代码修复:

TempArray = Array(rs2!ItemCode.Value, rs2![Dia/Size].Value, rs2!ItemType.Value, rs2!Description.Value, rs2!ItemAdded.Value, rs2!ItemSaleValue.Value, rs2!ItemBuyValue.Value, rs2!ItemLocation.Value, rs2!ItemCondition.Value, rs2!ItemOrigin.Value, rs2!ItemOriginDescription, rs2!ItemHistory.Value)