访问 – 循环遍历表,并在第二个表中查找外键,并将多个字段连接到原始表中

访问 – 我们有一个备注字段[DESCRIPTION_OF_REQUEST]的表格。

另一个表logging特定请求发生的任何date更改(对于可交付成果)。 一对多的关系。

从报告的angular度来看,我们需要按月导出(如Excel)请求,并希望将所有可交付date的所有更改连接到注释字段。

[tblRequests] RegProjID DateOfRequest DESCRIPTION_OF_REQUEST ---------- ------------- ---------------------- 116 06 Oct 2015 "Stability of broken ampoule." 

 [tblDateChanges] RegProjChangeID RegProjID DateOfDateChange UserName ReasonForChange --------------- --------- ---------------- -------- --------------- 355 116 19 Jan 2016 dskelly "Duplicate Request from Simon Wong CPP Request already in process Original Request # 13661" 1549 116 21 Mar 2016 sdoyle This request looks like an entry error - it is logged as Trandate 200mg tablets, but refers to a broken ampoule. We received an enquiry from Francisco Gomez for information on a broken Trandate ampoule which has been logged correctly as Req ID 18540. 

输出必须有连接到DESCRIPTION_OF_REQUEST中的请求更改的两个原因

我们可以build立一个查询,将所有的ReasonForChange连接到一个logging之前导出或者这应该通过导出两个查询在Excel中完成?

像往常一样,一个简单的数据库已经发展成为一个有价值的报告工具,并希望它成为每个人的一切。

感谢您提供任何build议。

如果你可以在你的主表中添加一个新的字段,使用VBA会非常简单,你可以这样做:

 Function updateReasonForChange() Dim db AS DAO.Database Dim Req AS DAO.Recordset Dim Chg AS DAO.Recordset Set db = currentDb() Set Req = db.OpenRecordset("tblRequests") Set Chg = db.OpenRecordset(SQL here to select only changes that have not previously been added to tblRequests, use a date range would be my preference but you could also create a yes/no field in the date changes table to mark it as processed) Req.MoveFirst Chg.MoveFirst Do While Not Chg.EOF 'run though all date change records selected Req.Seek "=" Chg![RegProjID] 'This assumes you have RegProjID indexed If Req.NoMatch 'do nothing if no match is found, you could add some error handling here 'but if you have a parent-child relationship you should have no issue Else Req.Edit Req![DESCRIPTION_OF_REQUEST] = Req![DESCRIPTION_OF_REQUEST] & " " & Chg![ReasonForChange] Req.Update End if Loop Req.Close Chg.Close db.Close Set Req = Nothing Set Chg = Nothing Set db = Nothing End Function 

编辑:[DESCRIPTION_OF_REQUEST]的字段types将在这里重要,如果它被设置为最多255个字符,您可能有错误,由于许多原因将更改添加到相同的logging,您可能不得不改变。

所有这一切,我会build议在主键上join一个简单的输出select查询,引入[DateOfDateChange]和[ReasonForChange]并将结果显示为数据透视表与简单的电子表格,它将为您的目的提供更好的服务会想。