Ms-Access

MS Access 多對多查詢/表單協助

  • December 9, 2016

我有一些初學者類型的問題。

有人可以看看下面的關係,讓我知道為什麼我不能得到下面的表格/查詢來只顯示唯一的約會信嗎?我有 143 封預約信。我有 135 個成員。我在聯結表中有 585 條記錄。我知道我搞砸了表單源查詢(如下),但我有多糟糕?非常感謝您的專業知識。

使用的資源:

關係截圖:

關係截圖

形式:

表格截圖

詢問:

查詢截圖

SQL:

SELECT DISTINCTROW tbl_apptltrs.*, jtbl_apptltrs_mbrs.*, tbl_mbrs.*
FROM tbl_mbrs INNER JOIN (
   tbl_apptltrs INNER JOIN jtbl_apptltrs_mbrs
   ON tbl_apptltrs.ApptLtrsID = jtbl_apptltrs_mbrs.LinkedApptLettersID)
ON tbl_mbrs.MembersID = jtbl_apptltrs_mbrs.LinkedMembersID;

我必須在這裡進行一些心理調試,但一般來說,您應該將子表單綁定到將您的聯結表連接到相關記錄表的查詢。子表單內的表單不應該知道關係左側的表(tbl_apptltrs)。

所以鏈條是這樣的:

  1. 主窗體綁定到tbl_apptltrs.
  2. 子表單通過主鍵tbl_appltrs(例如父表單ApptLtrsID=子表單LinkedApptLettersID)連結到主表單。
  3. 子表單內的表單綁定到連接jtbl_apptltrs_mbrstbl_mbrs( jtbl_apptltrs_mbrs.LinkedMemberID = tbl_mbrs.MemberID) 的查詢。

引用自:https://dba.stackexchange.com/questions/157709