2013-03-27 69 views
0

我正在使用Access 2007構建數據庫。我對Access沒有太多的經驗,而且我不確定如何完成此操作任務。如何使用基於另一個字段的表格中的信息更新字段選項

我已經構建了一個條目表單,並且有一個名爲「Product」的字段,它是一個從Product表中抽取信息的下拉列表。 Product表建立這樣的:

Product Name  Commodity 
-------------------------------------------- 
Product #1   Soybean 
Product #2   Soybean Meal 
Product #3   Corn 

我對所謂的「高溫超導商品」的形式,其爲下拉拉動從美國協調關稅表中的信息的另一個領域。此字段已鎖定,我希望某人從「產品」字段中選擇產品時,該值將自動更新。以下是HTSUS表格:

Commodity   HTSUS Value 
-------------------------------------------- 
Soybean    1.1.1 
Soybean Meal  2.2.2 
Corn    3.3.3 

當某人在「產品」字段中選擇一個項目時,它會顯示產品名稱。一旦他們選擇了商品,我希望「HTS商品」字段根據表中的商品列自動更新,但顯示HTSUS價值列。

 Product: Product #2 (Soybean Meal) 
HTS Commodity: 2.2.2 (Soybean Meal) 

我希望這是有道理的。我知道如何使用不同的構建器來創建宏,但我不知道如何完成這一點。我一直在嘗試使用AfterUpdate()宏。感謝您提前提供任何幫助。

回答

1

下面是做到這一點的一種方法:

開始通過創建一個名爲HTSUS_by_Product其SQL代碼是

SELECT Product.[Product Name], HTSUS.[HTSTS Value] 
FROM Product INNER JOIN HTSUS ON Product.Commodity = HTSUS.Commodity; 

它會產生這樣的結果

Product Name HTSUS Value 
------------ ----------- 
Product #1  1.1.1 
Product #2  2.2.2 
Product #3  3.3.3 

現在已保存的查詢,在您的表單上,讓我們假設您有一個名爲cbxProductName的組合框,它從[Product]表中的[Product Name]字段獲取其值。當您從列表中選擇「產品#1」時,cbxProductName.Text將爲「產品#1」。

現在在窗體上創建一個文本框並將其命名爲txtHtsus。其Locked屬性設置爲Yes,並輸入以下內容作爲其Control Source屬性:現在

=DLookUp("[HTSUS Value]","HTSUS_by_Product","[Product Name]=""" & [cbxProductName].[Text] & """") 

,在After Update事件的cbxProductName組合框控件,單擊省略號按鈕[...],選擇「代碼生成器」,然後添加一個.Requery語句來cbxProductName_AfterUpdate()程序,這樣

Private Sub cbxProductName_AfterUpdate() 
Me.txtHtsus.Requery 
End Sub 

給一個嘗試,看看它是否適合你。

+0

謝謝你,和Gord!我修改了幾件,但得到了我想要的。謝謝你的幫助! :) – 2013-03-28 13:27:07

相關問題