MS Access基于同一表

时间:2017-10-12 15:13:46

标签: ms-access upsert

我想自动添加和更新记录来计算灯泡的总数。这是针对将出售给客户的商品的销售订单。销售助理将输入灯具的部件号,安装人员的信息以及所需的物品数量。所有其他信息将从另一张表中提取,我已经将价格等等,因为它不相关。

我希望订单表格能够自动为订单上需要的灯泡数量添加另一个订单项。

示例数据,由员工输入:

ID   | PartNumber | Info | Qty | BulbQty | BulbInfo
1    | 563        | Hall |  3  |    2    |   A19

当它被添加到表格中时,我想自动添加一个新记录,其中包含空白部件号,[Info] = [BulbInfo],[Qty] = [BulbQty] * [Qty]。

示例数据,以及要交付的自动订单项计算灯泡:

ID   | PartNumber | Info | Qty | BulbQty | BulbInfo
1    | 563        | Hall |  3  |    2    |   A19
2    |            | A19  |  6  |         |

现在,如果使用A19灯泡添加新的订单项,我想添加到我的灯泡记录的数量(基于Info = BulbType),而不是添加全新的记录。当然,如果记录被更改或删除,现在我需要从相关的灯泡记录中扣除。我有很多不同的灯泡类型,所以我需要根据新的传入记录的[BulbQty]值来动态。

1 个答案:

答案 0 :(得分:0)

我创建了一个私有子,每次更新数量时都会调用它,传递[BulbType]和我的销售订单号,以便我只更改当前的销售订单。

首先如果[BulbType]是"",则退出该子。然后我使用DCount在[Info]中查找[BulbType]的现有实例。如果有多个实例(在我的情况下不应该是,但以防万一),提示将它们全部删除。接下来如果有零个实例,请在[Info] = [BulbType]中添加一个。然后,如果只有一个实例(现在应该有),则创建[BulbType]的所有实例的记录集。现在只需运行该记录集并继续添加到totalQty变量以获得总计。使用DLookup将该总计添加到我的销售订单中的[Qty]字段,因为我知道只有一个实例,其中[Info] = [BulbType]。