MS Access:为每条唯一记录设置可独立编辑且不修改源表的计算字段
Access可编辑默认数量字段实现方案
以下是两种适配不同场景的实现方案,均可满足默认取原始Quantity值、编辑不修改源表、单条记录独立编辑的需求:
方案1:适配需长期留存发WH2数量的场景
- 打开你的发票原始表的设计视图,新增一个
Number类型字段,命名为WH2_Ship_Qty,无需设置默认值,保存表结构。 - 修改你原来作为子窗体数据源的SELECT查询,SQL调整为:
SELECT [Invoice Number], [Part #], [Pallet #], Quantity, WH2_Ship_Qty FROM 你的原始表名 WHERE [Invoice Number] = Forms!你的主窗体名称!发票号输入控件名 AND [Pallet #] = Forms!你的主窗体名称!托盘号输入控件名
- 打开子窗体的设计视图,把
WH2_Ship_Qty字段拖到窗体上,选中该控件,在「数据」选项卡的「默认值」属性里填写=[Quantity],保存窗体即可。
该方案下用户编辑只会修改新增的WH2_Ship_Qty字段,完全不会影响原始的Quantity字段,所有编辑记录可长期留存。
方案2:适配仅单次生成装箱单、不需要留存发运数量的场景
- 给主窗体的「查询」按钮新增点击事件,每次用户输入发票号、托盘号点击查询时先运行生成临时表的SQL:
SELECT [Invoice Number], [Part #], [Pallet #], Quantity, Quantity AS WH2_Ship_Qty INTO tmp_WH2_Ship FROM 你的原始表名 WHERE [Invoice Number] = Forms!你的主窗体名称!发票号输入控件名 AND [Pallet #] = Forms!你的主窗体名称!托盘号输入控件名
- 将子窗体的数据源设置为
tmp_WH2_Ship表,直接绑定WH2_Ship_Qty字段即可。
该方案下编辑仅修改临时表数据,完全不会改动原始表,每次查询新数据会自动覆盖旧临时表内容,无需额外维护历史数据。
原问题原因说明
你之前遇到的未绑定字段修改后全记录同步的问题,是因为Access的未绑定控件属于窗体全局属性,不关联单条记录,只要换成绑定到表/临时表字段的控件即可解决。
内容的提问来源于stack exchange,提问作者Tbure90
相关产品推荐
相关产品推荐

