2008-09-16 64 views
6

我創建了一個Access 2007表單,用於顯示產品表中的產品(例如,產品)。 Product表中的一個字段是與此產品的父類別對應的CategoryID。在Access 2007中綁定表單組合框

在窗體中,CategoryID需要表示爲綁定到Category表的組合框。這裏的想法非常簡單:選擇一個新的類別應該更新Product表中的CategoryID。

我遇到的問題是,選擇新的類別將更新類別表的CategoryName,而不是更新Product表中的CategoryID。這樣做的原因是組合框似乎只能綁定到Category表的CategoryName。

如果當前產品的類別ID爲12,即類別表中的CategoryName「Chairs」,然後選擇一個新值,讓我們說組合框中的「表」(CategoryID 13)更新CategoryID 12使用新的CategoryName「Tables」,而不是將產品表類別ID更新爲13.

如何將類別表綁定到combox框,以便datatextfield(我希望在Access中存在)是類別名和datavaluefield是CategoryID,只有當選擇的組合框項目更改時,產品的CategoryID纔會更新?

編輯:請參閱下面的接受答案。我還需要將列數更改爲2,並且所有內容都開始正常工作。

回答

4

您需要在組合框的查詢中使用這兩個值。
例如SELECT CategoryId,CategoryName FROM CategoryTable ... 將組合框綁定到第一列CategoryId。 將組合框的列寬設置爲0in(不需要第二個值,因此沒有限制)。這將隱藏包含您所選值的第一列;所有這些都表明它是描述值,這是你想看到的。 因此,現在當您在組合框中選擇其他選項時,組合框返回的值將是綁定值CategoryId,而不是CategoryName。

啊,是艾莉森,對不起,我忘了設定的組合框列數= 2

0

您也應該檢查你的類別表在類別名稱字段主鍵。你原來的配置應該拋出一個錯誤或消息說更新會違反密鑰。因爲它似乎可以有兩個同名的類別。