Sql MS ACCESS:要完全链接的窗体和子窗体?还是窗体和未绑定的连续子窗体?
我正在尝试设计一个名为“Master PO”的采购订单表单,它包含一个名为POContent的连续子表单。为此,我使用了两个名为tblMasterPO和tblPOsContent的表。以下是它的屏幕截图: 关键点在于主订单表单是一个拆分视图,顶部是数据表视图,底部是文本和组合框的组合。“采购订单内容”子表单是主采购订单表单下部的连续表单 在我的公司,我们试图记录我们对采购订单所做的每一次更改,以便将来进行分析,因此需要一个PO修订号。我们的想法是,每当我们对主订单或订单内容进行更改时,当用户使用(大量)VBA代码单击“保存/更新订单”按钮时,我将使用更新的数据创建一个新记录。表单/子表单组合实际上并不是调用它的最佳方式,因为它实际上应该是2个完全链接的表(如果PO内容发生更改,则主PO也将使用新ID更新) 我有多个问题要实现此表单的工作目标:Sql MS ACCESS:要完全链接的窗体和子窗体?还是窗体和未绑定的连续子窗体?,sql,forms,ms-access,unbound,continuous-forms,Sql,Forms,Ms Access,Unbound,Continuous Forms,我正在尝试设计一个名为“Master PO”的采购订单表单,它包含一个名为POContent的连续子表单。为此,我使用了两个名为tblMasterPO和tblPOsContent的表。以下是它的屏幕截图: 关键点在于主订单表单是一个拆分视图,顶部是数据表视图,底部是文本和组合框的组合。“采购订单内容”子表单是主采购订单表单下部的连续表单 在我的公司,我们试图记录我们对采购订单所做的每一次更改,以便将来进行分析,因此需要一个PO修订号。我们的想法是,每当我们对主订单或订单内容进行更改时,当用户使
- 确保我可以自由切换到表单和子表单字段的最佳方式/实践是什么?例如,同时弄脏两张桌子?或者有一个未绑定的连续子窗体?还是临时桌子
- 如果我使用未绑定的连续子表单,如何让用户在向采购订单添加新项目时添加行?例如,我希望用户单击数据表表单查看采购订单,然后在未绑定的子表单中填充采购订单内容项。但是,当用户单击“新建PO”按钮时,他在任何主PO和PO内容字段中都没有数据,因此用户可以在表单和子表单中添加项目,最后通过单击“保存/更新PO”按钮保存所有内容
我们可以同时合并两个条目吗?某种类型的2表完整链接,因为其中一个不存在而没有另一个?我不确定需要多少VBA。 在Access中,父表(父窗体)的保存是自动的。当您将焦点更改为子窗体时,父窗体记录就会被保存(这样做真的很好) 对于子表单中的更改/修改,您需要更新父表单PO号吗 嗯,子窗体中的“更改前”事件不会激发,除非您对该行进行了更改。所以你可以去:
me.Parent.form!PONum = "some new number".
但是,不清楚您是希望子表单中的多个更改只进行一次更改,还是希望在一次给定的go中进行“多个”更改
我打赌这个新的PO更新只会发生一次,即使您更改了几个子表单行。因此,这可能是一个挑战。在这种情况下,我可能会在子表单(Public var-代码模块的开始)中设置一个表单级标志。因此,一旦触发任何before change事件,它可以设置一个或多个记录已更改的标志。因此,此时,我们需要一个“点”由于一行或多行已更改,我们更新父窗体的时间。请注意,父窗体可以查看、获取/获取/测试/查看子窗体中的“标志”是否显示更改。因此,问题是用户如何“采取行动”什么时候完成?因为他们可能会决定在子表单中需要更多的更改,并进行更多的编辑。但是,如上所述,这仅仅意味着我们的子表单更改标志仍将显示为true
因此,关键问题就变成了在什么时间点以及我们如何决定它们被完成?一旦我们确定了这一点(可能关闭表单???),那么我们就有了一个时间点,在这个时间点我们知道子表单行(1行或多行)已经更改。因此,当我们离开记录时,我们需要在主窗体中检查此已更改的标志,或者说关闭窗体
在这种情况下,我要做的是确保用于编辑的sub会导致主记录变脏