当表单上的字段是组合框控件时,先前输入到字段中的数据不显示
具有显示事件信息的表单。它包括最初设置它的工作人员的姓名。此控件的组合框行源仅是当前工作人员的列表。如果设置事件的原始员工已离开(即不是当前),则在该记录上打开表单时,控件将显示空白。
我想知道如何显示历史记录(即任何/所有数据),但是如果用户要更改任何内容,他们只会获得当前(即更新的)列表。
控件存储人员ID,组合框显示人员名称(从人员表链接)。因此,当尝试更改选项时,它说我不能,因为绑定列已隐藏。
您在这里没有很多不错的选择。
您当然不能删除此类记录,因为如您所指出的那样,此类历史记录数据将因此中断。
我可以想到一些建议。
首先,在组合框显示中添加“活动”人员栏。然后,如果用户更改或从组合框中选择,则可以防止(或警告)他们正在选择不存在的工作人员。这将显示非活动人员,但理论上将允许用户选择非活动人员–您可能不希望这样。(但是,如果您想防止这种情况,则可以在更新之前警告或阻止该控件)。
另一种方法是根据当前记录动态加载组合框。换句话说,如果表单处于“添加模式”状态,或者组合框为空白,则使用仅包含StaffActive = True的select语句加载组合框。
如果将“主”表单限制为一个记录(我倾向于这样做),那么上面的方法就可以很好地工作。我倾向于提供搜索表单,然后总是将主表单启动为一个记录。
因此,在表单加载事件中,您可以检查是否设置了工作人员的列ID,如果未设置该列的ID,则可以将所有工作人员加载到组合框中。
如果该列具有处于活动状态的Staff Memember,则在“加载时”窗体中,将组合框的sql设置为仅活动成员。
如果允许记录导航,则此方法“麻烦”。在这种情况下,您必须将测试置于当前事件中,并以这种方式设置组合框的sql。希望员工列表是“小”。
填充组合框的第三种方法是使用回叫。这是LITTLE的一种已知方法,如果发生当前事件,则可以再次测试ID是否处于非活动状态,从而设置可变变量(可能是全局变量),以允许回叫代码包含非活动人员。
但是,如果您将“ id”存储在不再存在的员工记录的该列中,那么您将无能为力。(我可能会尝试使用正确的ID重新输入已删除的员工)。
因此,尚不清楚员工记录是否已删除,或者您是否有一些“活动”标志。如果具有活动标记,则可以“测试”组合框中的人员“ id”是否为非活动人员,然后将正确的sql推入包含非活动人员的组合框数据源中。
我想出于性能的考虑,并减少了“闪烁”,那么我可能会设置/跟踪当前组合框显示的内容,并且仅在需要状态(非活动)成员的情况下才更新组合框。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句