【问题标题】:Filter Access Table based on External List根据外部列表过滤访问表
【发布时间】:2020-06-20 01:34:34
【问题描述】:

我有一个名为“库存”的表,其中包含所有“项目”(物理零件、组件)。 我有另一个表,称为“产品”,其中列出了主要产品。 第三个表是“制造订单”。

每次生产新的制造订单时,我都希望获得这两种效果:

  • 所选产品的库存数量增加
  • 增加产品的商品数量减少了它们的特定单位。

当然,要做到这一点,我需要一个 BOM。 我正在尝试找出生成 BOM 的最有效方法。

目前我想到的解决方案如下:

  • 每次有新的制造订单时,根据外部列表(在 Excel 上)过滤库存表,并仅针对“过滤列表”中可用的项目减少 qnt。

我想知道 Access 中是否有一些功能允许这样做,或者我确实需要 VBA。 另外,如果有更快速有效的解决方案。

注意:我决定不将 bom 创建为表以保持数据库更干净。

提前致谢

【问题讨论】:

  • 为什么会涉及Excel?我不清楚如何使用 Excel。 db 的制造/组装类型是设计更复杂的一种。许多讨论的主题。理想情况下,库存余额是在需要时从交易记录中计算出来的,而不是增加/减少表中的值。 allenbrowne.com/AppInventory.html
  • 每个产品都是一个组装的,由存储在库存表中的几个项目组成。每次创建新产品时,我都需要仅为组成产品的项目更新库存数量,因此,基本上,我需要根据 BOM 过滤记录。我不知道在哪里或如何在 Access 中创建 BOM 列表,所以我想在 Excel 中创建它们,并以某种方式设置过滤器(例如 vba 应用程序)。我想知道是否有更有效的方法。
  • 效率更高与否,最好的方法是根据交易记录计算余额。收到的库存和使用的库存的差异是余额。
  • 抱歉,我仍然不知道如何按照您建议的方式管理 BOM。
  • 定义首字母缩写词 BOM。

标签: excel vba ms-access


【解决方案1】:

我将首先确定您从哪个应用程序控制此更新;在 Access 中从 Excel 中检索数据,还是在 Excel 中更新 Access 中的表?

如果您在 Access 中,您可以通过 Query Excel worksheet in MS-Access VBA 等方式将数据拉入记录集中,然后使用 rs2.field(***).value 构建 Access-SQL UPDATE 字符串以更新桌子。这可以放置在驱动 VBA 代码的表单中。请注意,在引用的超链接中有一个函数 fncOpenFile。这很可能是检索文件名的文件对话过程。类似的功能是这样的:

Private Function GetFileName() As String
Dim FO     As Object    'file object
Set FO = Application.FileDialog(3)
With FO
    .allowMultiSelect = False
    .show
    GetFileName = .SelectedItems.Item(1)
End With
End Function

【讨论】:

  • 确切地说,更新是由 Access 控制的,更准确地说,是通过一个用于确定必须生产多少新产品的表单来控制的。似乎没有内置的方法来管理它,所以我将使用 VBA。想法是从 excel 文件(所选产品的 BOM)中提取数据并检查 Inventory 表的记录集:如果匹配,则更新数量字段。
  • 我一直在查看查询 Excel 等链接中的代码 请注意,连接字符串是 Access 2000 风格的,需要更新。其余代码可能需要修改。
猜你喜欢
  • 2014-03-12
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-23
  • 2021-09-16
  • 1970-01-01
相关资源
最近更新 更多