假設我有兩個表,tblA
和tblB
,它們具有1:n的關係,即對於tblA中的給定記錄,在tblB中可以有許多記錄。MS Access:如何通過基於當前記錄的命令按鈕打開表單?
現在我有一個表格,frmA
,這是基於tblA。在此表單上有一個命令按鈕,可打開第二個表單frmB
,該表單基於tblB
。現在我希望第二個表單frmB
只顯示tblB
與tblA
的當前記錄匹配的記錄。 我發現有一種內置的方式(我使用Access 2010),用於過濾來自tblB
的數據。但是由於在frmB
之內,我需要根據當前記錄做更多的東西,這還不夠。 那我該怎麼做呢?
我想創建一個查詢,qryAB
,做一個內部聯接,並有一個參數從tblA
中選擇某個記錄。但是,如何將這個查詢傳遞給用作我的命令按鈕的點擊式宏(或vba)中的參數?
我會嘗試更詳細的描述:表A包含有關業務夥伴的數據。表格A顯示了這些信息(連同聯繫人的子表單)。現在對於來自表AI的每條記錄,都需要一個命令按鈕來打開一個新表單(彈出窗口),該表單只列出來自表B的與當前A記錄相對應的條目(協議)。在此表單上,我還需要一個combo-該框基於當前選擇並用於在表格B中顯示的記錄中導航(例如,與業務夥伴達成協議的所有年份的組合框).. – janitor048 2012-02-06 17:45:07
如果formB始終從formA打開,可以將組合的行源設置爲,例如,「從表中選擇AFERE字段=表單!formA!SomeControl」。但是,根本不需要引用表單,畢竟表單現在只顯示id與formA匹配的記錄,因此您的行源可以引用formB ID。最後,您可以將引用作爲OpenArg傳遞,並通過代碼構建組合。作爲一般規則,我儘量避免不能單獨工作的表單,並嘗試根據當前表單提供的信息構建組合工具。 – Fionnuala 2012-02-06 17:55:21
使用OpenForm方法和適當的select語句似乎可以完成這項工作。然後我可以使表單B上的組合框基於該表單上的可用信息。我對Access並不熟悉,有時甚至有些失落,以至於哪種方式可以做到最好......感謝您的幫助! – janitor048 2012-02-07 09:46:46