在 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 代码的主要内容,如果未能解决你的问题,请参考以下文章

订单确认后如何从订购数量中减去可用数量?

在 Access 中添加或减去字段

如何将列表框中列出的产品数量直接减去我的产品数据库? (MySQL的)

Shopify购买按钮最小数量

在 Excel 中计算同一单元格中的累积和

SAP ABAP 中有关数据查询与计算问题