2008-09-30 54 views
1

我有兩個表:如何在Access窗體上使用外鍵組合框用戶友好?

Employees: 
uid (number) | first_name (string) | last_name (string) | ... 

Projects: 
uid | project_title (string) | point_of_contact_id (FK: Employees.uid) | ... 

我想創建項目的形式與「聯絡點」組合框(下拉)字段。顯示值應該是「first_name last_name」,但後備數據是UID。如何設置表單以向用戶顯示一件事物並將其他事物保存到表格中?

我會很好,只能夠顯示一個字段(例如「first_name」),因爲我可以創建一個full_name字段的視圖。

後來:

如果有一種方法,在表的設計水平要做到這一點,我寧願是,從那以後,我將只需要設置每個UID柱的設置(也有很多表),而不是每個UID字段的一個設置(並且有多個表單,每個表單具有多個UID字段)。

回答

3

要擴展Loesje的答案,您可以使用Bound Column屬性以及Column Count和Column Widths顯示多個字段,以便您可以告訴Access哪一個應該寫入數據庫(還有其他方法可以使用VBA執行此操作,但這應該適用於您的特定情況。)

對於您的情況,請設置行數據e到select uid, first_name, last_name from tablename表示您的綁定列應爲1,用於行源(uid)中的第一列。這是默認值,所以如果您想從不同字段保存值,則只需更改它。 (例如,如果您想從上面的Row Source保存last_name,則需要將Bound Column設置爲3.)

不要忘記,當您設置顯示的其他列的寬度時,組合框框的寬度屬性應該大於或等於列寬度的總和,否則您可能看不到所有列。

沒有辦法在表級別指示基於該表的表單需要拉出特定列或者特定列是外鍵,但是您可以將組合框複製到其他表單並且它將攜帶它的所有屬性。您也可以複製行源查詢並將其粘貼到其他組合框中(如果有幫助的話)。

3

將dropdownbox的rowsource設置爲「從表名中選擇uid,first_name,lastname」並將列寬設置爲0.這樣,第一列的寬度設置爲零,因此用戶看不到它。 (您可以使用分號提供其他列的寬度,即:分號,即:0cm; 4cm; 4cm)

+1

如何知道如何使用UID字段而不是三元組(UID,first_name,last_name)作爲存儲的值? – 2008-09-30 13:51:03

相關問題