2017-10-12 81 views
0

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

我希望订单窗体自动为需要订单的灯泡数量添加另一个行项目。

实例数据,通过联想进入:

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

由于是被添加到表,我想自动添加一个新的记录,用空白部分号码,[信息] = [BulbInfo],[数量] = [灯泡数量] * [数量]。

实例数据,再加上自动线项目计算灯泡交付:

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

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

+2

为什么要在表中存储总和而不是仅使用查询? – MoondogsMaDawg

+1

展开@ChristopherD。评论 - 你不应该存储“现有”数量,你应该总是计算它。关于此主题的更多信息,请访问http://allenbrowne.com/AppInventory.html – Minty

+0

此销售订单将用于更新库存表数量以及创建采购订单。灯泡是他们自己的独立行项目,因为它们是一个库存物品以及被买卖。 –

回答

0

我做了一个私人小组,每当数量得到更新时都会调用,传递[BulbType]和我的销售订单编号,这样我只更改当前的销售订单。

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

相关问题