在 Access 中扫描项目时减去数据库中的数量的 VB 代码
Posted
技术标签:
【中文标题】在 Access 中扫描项目时减去数据库中的数量的 VB 代码【英文标题】:VB code to subtract a quantity that is in the database when item is scanned in Access 【发布时间】:2021-06-22 17:18:50 【问题描述】:我在 Access 中创建了一个数据库,用于在扫描产品时显示数据库中的产品、SKU 和库存。扫描后,库存将在 Inventory IN 表单中添加一个输入,在 Inventory OUT 表单中减去一个输出。我们现在正尝试将工单实施到相同的表格中。扫描时,我需要 WorkOrders 表中的工单编号以及该工单需要完成的数量。此外,工作订单的数量需要在每次扫描时减少一个。扫描仍会将库存增加 1。 这是我当前用于更新后事件的 Inventory IN 的代码:
Private Sub ItemCode_AfterUpdate()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset("Select InvQty from InventoryManagement where ItemCode =" & Me.ItemCode)
With rst
.Edit
!InvQty = !InvQty + 1
.Update
.Edit
End With
End Sub
我需要为此添加代码以允许表单的其他部分工作,即提取工作订单号和该工作订单的数量。这些表是 InventoryManagement 和 WorkOrders。我的数量标签是 txtBuild。另外,我需要一个代码,当工作订单达到 0 时,它会切换到下一个工作订单。如果不可能,请告诉我。
【问题讨论】:
理想情况下,不会这样做,而是根据原始数据计算余额。评论allenbrowne.com/AppInventory.html 我在 2 周前发布了类似的内容,并被告知不要这样做。我很困惑为什么它会起作用。我们正在努力让那些在地板上工作的人尽可能轻松,只需扫描物品就会节省很多时间。是否有其他方法也可以允许使用扫描? 未按照您的要求执行操作的原因在“存储手头数量”部分下的引用链接中。没有人说不应该将扫描用作数据输入工具。 要继续,问题在于您对扫描输入的操作。大多数事情都可以用足够的代码来完成。 “拉起”工单编号和数量是什么意思 - 打开记录或使用 DLookup()? 基本上,我们的系统设置类似于 POS 系统。我们实际上没有库存,我们按订单生产产品。好吧,当我们过度制作一件物品时,可以说该物品进入“库存”,这些物品用于小额快速订单。工单号和建造在与其他表格不同的表格上。我在 vba 中尝试过任何代码,但没有运气。我已经有了 DLookUp() 函数,它显示了。只需要构建来减少输入。例如,我们要制作 100 个。扫描时,我希望 To Build 减 1,所以我们看到 99、98、97 .... 等等。 【参考方案1】:好的,所以我想出了第一部分。我运行了To Build减少的部分。我运行了与发布的相同的代码,但使用来自另一个表的数据,其中包含 On Dirty 事件而不是 After Update。只需要弄清楚 if 语句,这样当 To Build 变为 0 时,下一个工单的下一行将从构建所需的数量开始。
【讨论】:
以上是关于在 Access 中扫描项目时减去数据库中的数量的 VB 代码的主要内容,如果未能解决你的问题,请参考以下文章