通过Form从主表中获取ID字段到链接表中

时间:2017-08-02 00:36:19

标签: forms ms-access relationships

作为业余编码器多年来,我一般在处理链接表时使用子表单,以便将ID字段从主要字段转移到子字段,简单明了...

然而,在我的最新项目中,主表单是一个连续表单,其中包含一个交付运行列表(Date,RunName,RunCompleted)等...链接到此主表是一个包含(SKU of product,Qty等)的交货清单。 ..)。我在两个表之间使用了一个简单的关系。

现在,在每行末尾的主(RUNS)表单上打开DELIVERIES表单并显示所有匹配RUNID的记录

这对于显示预先存在的数据很好,但是当我想添加新记录时,我一直在使用OnCurrent事件附加的以下代码:

Me.RunID = DLookup("[RunID]", "tbl_BCCRuns", "RunID = " & Forms![frm_BCC_Runs_list]![RunID])

我也用过:

Forms![frm_BCC_Deliveries].Controls![RunID] = Forms![tbl_BCCRuns].Controls![RunID]

(注意:上面从记忆中完成并且确切的代码可能不正确,但这不是手头的问题)

现在......这两个选项都给了我我需要的东西但是......

我发现当我正在处理数据库时,或者如果您按正确的顺序打开某些表单(我需要识别和修复的错误),您可以打开不带过滤器的DELIVERIES表单(查看所有交付的内容)参数缘故)和顶部条目(通常是最旧的记录)突然在主窗体中采用所选记录的RUNID。

现在,我的问题是这个,答案可能很简单" no"那没关系,我会继续......

是否有一种更好的方式,一种我不熟悉的方式,或者由于我的访问进度不一致而无法知道,将ID转移到表单而不会因不当使用而受到污染?或者我只需要咬紧牙关并确保没有可能的方法发生这种情况?

为了解决这个问题,我创建了一个仅显示表单来查看交付,但有时我还需要访问实时历史数据来修改其他字段而不想修改RUNID。

任何指针都非常感谢...

1 个答案:

答案 0 :(得分:0)

由于您只想在表单位于新记录行时拉出RunID,请检查以确认这是一条新记录。

If Me.NewRecord Then
    Me.RunID = DLookup("[RunID]", "tbl_BCCRuns", "RunID = " & Forms![frm_BCC_Runs_list]![RunID])
End If

当两个窗体都是主窗体上的子窗体时(主要窗体不必绑定){} {/}>