我正在使用Access 2007构建数据库。我没有很多使用Access的经验,而且我不确定如何完成此任务。
我已经构建了一个条目表单,并且有一个名为“Product”的字段,它是一个从Product表中提取信息的下拉列表。 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”字段,但显示HTSUS Value列。
Product: Product #2 (Soybean Meal)
HTS Commodity: 2.2.2 (Soybean Meal)
我希望这是有道理的。我理解如何使用不同的构建器创建宏,但我不知道如何实现这一点。我一直在尝试使用AfterUpdate()宏。感谢您提前提供任何帮助。
答案 0 :(得分: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
尝试一下,看看它是否适合你。
答案 1 :(得分:0)
你需要使用我最喜欢的:dlookup