2017-08-02 21 views
0

作为一个业余编码器多年来,我通常在处理链接表时使用子表单,以便将ID字段从主表单转换为副表单表单。通过表格从主表中获取ID字段到链接表中

但是,在我最新的项目中,主窗体是一个带有交货运行列表(Date,RunName,RunCompleted)等的连续窗体......与此主表链接的交货列表包含(产品SKU,数量等等...)。我使用这两个表格之间的简单关系。现在

,在在每一行的末尾的主(运行)形式是与匹配的runid

这是细用于显示预先存在的数据,但是当我打开交付形式并显示所有记录的按钮要添加新的记录,我一直在使用连接到成为当前事件下面的代码:

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。现在

,我的问题是,答案可能是一个简单的“不”,这就是很好,我会继续前进......

有没有更好的办法,这是一种我不熟悉或只是不知道由于我的不一致的访问进度,将身份证转移到表单而没有冒用不正当使用的污染风险?或者我只需要咬紧牙关,确保没有可能的办法来实现这一目标?

为了减轻这个问题,我创建了一个仅用于查看交付的仅显示表单,但是仍然有些时候我需要访问实时历史数据来修改其他字段而不想修改RUNID。

不胜感激任何指针...

回答

0

既然你只需要拉的runid如果窗体是一个新的记录行,做一个检查,以验证这是一个新的记录。

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

也可以考虑的技术同步的时候都是子窗体连续或数据表视图中的主窗体上的父母子女的形式(主要形式不必被束缚)https://www.fmsinc.com/MicrosoftAccess/Forms/Synchronize/LinkedSubforms.asp

+0

感谢June7 - 的当然......这很简单......答案一直在盯着我......欢呼......有时新鲜的眼睛是一个真正的救星。 – Dude

相关问题