У меня есть фрагмент кода, который предназначен для дублирования записи при выполнении, но вместо этого он создает пустую запись.
Мне удалось отследить ошибку в массиве, который я использовал для хранения полязначения из старой записи.Кажется, что при запуске .AddNew
массив, содержащий значения, изменил бы все свои значения в соответствии с этой новой записью, другими словами, сделав их все null
или 0
.
Вот код IЯ использую:
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
Вот где наборы ссылок ссылаются на:
- rs1 - позиции в текущем заказе
- rs2 - таблица запасов/ query
TempArray
- это массив, с которым у меня возникли проблемы, поэтому, если кто-то может указать способ остановить его изменение или лучший способ сделать это, он будет очень признателен.