AnT*_*AnT 2 ms-access ms-access-2007
首先,关于我的设置.
我有一个包含三个表的原始数据库:
A.列出各种位置的表:[location_code],[location_name]
B.描述项目的表:[item_code],[item_name],[item_price]
最后是一个将roo ^ H ^ H ^ H整个数据库连接在一起的表
C.表说明每个位置存储的项目和数量:[location_code],[item_code],[item_quantity].该表可以具有多个具有相同[location_code]的条目,因为不同的项可以存储在同一位置.基本上,这是一个从位置到项目的一对多关系的教科书实现,每个位置 - 项目链接附加一个额外的属性(数量).
现在,我需要做的就是创建一个表单,列出存储在特定位置的所有项目.这是Access中"子窗体"功能的基本用例.主窗体只是导航到不同的位置,而子窗体列出项目.
我用
SELECT C.location_code, B.item_name, B.item_code, B.item_price, C.item_quantity
FROM B INNER JOIN C ON B.item_code=C.item_code
Run Code Online (Sandbox Code Playgroud)
作为子表单的记录源.主窗体通过[location_code]链接到子窗体.子表单设置有列表布局(不是表格布局),即每个数据库字段都有自己的控制元素.
到目前为止一切都很完美.我在主窗体中选择了位置,子窗体为我提供了当前位置的可编辑[item_name] - [item_price] - [item_quantity]三元组列表.
下一步,我想为每个上述三元组添加一个计算控件.我想知道每种商品的总价格(即[item_price] * [item_quantity]每行的价格).很简单,我将计算的控件添加到子窗体的"可重复"区域并指定
= [item_price] * [item_quantity]
Run Code Online (Sandbox Code Playgroud)
作为价值的公式.再一次,一切都很完美.现在我的列表不是上面的三元组,而是每行有四个条目:[item_name] - [item_price] - [item_quantity] - [total_item_price].而且,重要的是,当我编辑[item_price]或[item_quantity]时,[total_item_price]会在我完成编辑后自动重新评估.
而作为最后一步,我想补充另一个计算控制,将显示存储在当前位置的所有项目的总价格(姑且称之为"总计").A也控制子表单(这次进入"脚注"区域)并指定以下公式作为其值
= SUM([item_price] * [item_quantity])
Run Code Online (Sandbox Code Playgroud)
现在,这有效.每次更改主窗体中的位置时,都会正确计算总值.此外,当我更改当前位置的任何项目的[item_price]时,总计也会自动更新.但是,当我更改[item_quantity]时,总计不会更新(???).点击F9将使其更新.来回更改当前位置将更新它.但是,不幸的是,仅仅更改[item_quantity]不会触发自动更新.
有谁知道,这里可能有什么问题?为什么[item_price]中的更改会触发总计的自动更新,而[item_quantity]中的更改则不会?直觉上,这些字段似乎具有相同的状态(除了前者来自表B,而后者来自表C).为什么行为不同?如何让它自动更新?
| 归档时间: |
|
| 查看次数: |
4197 次 |
| 最近记录: |