0
我有一个窗体上的列表框,用户在选择这些记录之前手动选择包含需要添加到表单上输入的总数量的单个数量的行。然后将选定的行发送到打印输出表,以便正确更新实际库存。总计到匹配列表框选择
我不知道如何减去部分数量,当选择的总数高于指定的数量并将差值发送到我的表格。我已经包括了我有什么设置到目前为止...
Private Sub ctrSend_Click()
Dim intI As Integer
Dim lst As ListBox
Dim varItem As Variant
Dim rst As DAO.Recordset
Dim qtySum As Variant
Dim qtyDiff As Variant
Dim rowMax As Variant
Dim rowUpdate As Variant
Set lst = Me![lstShipping]
Set rst = CurrentDb.OpenRecordset("ShipInv", dbOpenTable)
With lst
If .ItemsSelected.count = 0 Then Exit Sub
For Each varItem In .ItemsSelected
qtySum = qtySum + .Column(3, varItem)
Next
If Me.[ctrQtyProd] = qtySum Then
MsgBox "Qty Selected EQUALS Qty Being Shipped.", vbOKOnly, "Quantity Confirmation"
ElseIf Me.[ctrQtyProd] > qtySum Then
MsgBox "Qty Selected LESS THAN Qty Being Shipped, please select more Inventory.", vbOKOnly, "Inventory Confirmation"
Else Me.[ctrQtyProd] < qtySum Then
qtyDiff = qtySum - Me.[ctrQtyProd]
.Column(3, .ItemSelected.count - 1) = .Column(3, .ItemSelected.count - 1) - qtyDiff
End If
End With
With lst
For Each varItem In .ItemsSelected
rst.AddNew
rst!Order = Me.[ctrSOrder]
rst!EntDate = Date
rst!ShipDate = Me.[ctrSDate]
rst!BIN = .Column(0, varItem)
rst!SKU = .Column(1, varItem)
rst!Lot = .Column(2, varItem)
rst!QtyProd = .Column(3, varItem)
rst.Update
Next
End With
rst.Close
Set rst = Nothing
MsgBox "Warehouse Inventory Updated", vbOKOnly, "Update Confirmation"
End Sub
您可以扩展问题与一个小例子?我在更正目标时正确如下:**如果qtySum> ctrQtyProd然后减去列表中最后一个选定数量的差异**?因此,如果我在列表中选择数量“2,3和5”并且运输数量=“8”,那么在您的表格中您想要查看数量“2,3和3”。它是否正确? – Yoh
是的,这是正确的,但我昨天晚上都解决了。现在我遇到了DAO对象的问题,它不想在特定的表中查找和更新记录。 –