0

我正在使用 Access 2007 构建数据库。我对 Access 没有太多经验,也不知道如何完成这项任务。

我已经建立了一个输入表单,并且有一个名为“产品”的字段,它是一个下拉列表,可以从产品表中提取信息。Product 表是这样设置的:

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

我在名为“HTS Commodity”的表单中有另一个字段,它是一个下拉列表,用于从 HTSUS 表中提取信息。此字段已锁定,我希望有人从“产品”字段中选择产品后自动更新该值。这是HTSUS表:

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

当一个人在“产品”字段中选择一个项目时,它会显示产品名称。一旦他们选择了该项目,我希望字段“HTS Commodity”根据表格中的 Commodity 列自动更新,但显示 HTSUS Value 列。

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

我希望这是有道理的。我了解如何使用不同的构建器创建宏,但我只是不确定如何实现这一点。我一直在尝试使用 AfterUpdate() 宏。感谢您提前提供任何帮助。

4

2 回答 2

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

试一试,看看它是否适合你。

于 2013-03-27T20:49:16.420 回答
0

你需要使用我最喜欢的:dlookup

http://allenbrowne.com/casu-07.html

于 2013-03-27T20:49:42.137 回答