2013-03-27 67 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

相关问题