2013-10-15 58 views
0

我需要一些關於如何爲以下情形構建一些MS Access 2007表單的建議。MS Access 2007主子表單設計

我的表結構如下:

產品
++++++
ID(PK)
產品名稱
...

標籤
++++
ID(pk)
TagName

ProductTag
+++++++++++
產品ID(FK)
標籤識別(FK)

我想有一個主要形式,讓我來搜索並顯示所有的列表產品(以及每種產品的十幾種屬性)符合該標準(我正在考慮產品的連續形式視圖)。

到目前爲止這麼好。沒問題。

現在我需要一個「標記」表單,以連接到當前具有焦點的產品的連續表單產品列表的右側。標籤面板應始終顯示所有標籤的完整列表。我希望每個標籤旁邊都有一個複選框,可以打開和關閉該標籤是否適用於當前選定的產品。我也希望能夠隨時添加標籤(無需離開主窗體)。

我想我已經在玩三種形式,但是這是我需要一些建議:
- 主要形式
- 產品表(窗體主)我的產品搜索條件可能是在此表頭。
-Tag窗體(也是主窗體)

但是用這種方法我很難將兩個子窗體鏈接到一起。實際上,我很難理解如何使用複選框來顯示所有標籤的列表,這些複選框在打開和關閉時創建/刪除ProductTag表中的記錄,並且我真的希望Access能夠儘可能多地執行CRUD可能。我寧願避免在事件中寫入SQL INSERTS/DELETES的大堆。我是否要求太多的訪問?

如果您可以提供幫助,將不勝感激。如果在你的回答中,你可以討論我應該關注什麼RecordSource和Master/Child Link字段和/或事件觸發器,這將是一個很大的幫助。

回答

1

首先,我不認爲這是可能的使用複選框,因爲我不認爲未綁定的複選框將以連續的形式工作。

我的解決方案如下。我將它與TagList表單一起作爲Product表單的子表單,但還有其他方法。

首先在ProductTag表上創建一個查詢'qryProductTags',該表選擇與產品表單中當前所選產品匹配的所有記錄。

然後創建第二個查詢 - 標籤表左外連接(在Access中連接類型2)qryProductTags。在此查詢的輸出中包含TagID,TagName和fkProductID

此查詢現在應該選擇標籤tabel中的所有記錄,並且如果當前產品的ProductTags表中存在標記,它將顯示ProductID,否則該字段將爲空。

使用第二個查詢作爲標籤子表單的記錄源。然後附加一個事件(雙擊標籤名稱)以運行查詢,以便插入或刪除ProductTag表中的記錄,具體取決於Tag列表中fkProductID字段的值是否爲null。

您可以在TagList表單上使用條件格式來顯示選定的標籤或使用單獨的表單來顯示當前產品的標籤。

我希望這是有道理的。您可以在這裏找到「快速ñ髒」的工作例如是否有幫助,因爲我看不到的方式來上傳此文件:https://drive.google.com/folderview?id=0B0J_JolN6f8GOXpKVVZJTHVJTWM&usp=sharing

+0

好的解決方案。我強烈要求將主要表單中的產品作爲連續列表顯示,這使得它更難一些,特別是用戶還需要能夠同時將標籤應用於多個產品。你付出了很多努力,謝謝你的時間。 – Kenilik