从表中选择数据并自动填充字段

时间:2011-11-30 14:10:04

标签: ms-access ms-access-2010

我正在开展一个小项目,目前只是对一个更大的项目进行测试,但我遇到了一个块,我也找不到解决方案。

我有一个表格中的项目列表,它们包含项目名称和价格等信息。我有另一张销售表。我有一个允许您选择项目名称的表单,但是,我希望表格的其余部分自动填充来自项目表的信息。

我可以在更改项目名称字段时显示一个消息框,但是,通过我的搜索,我无法找到在项目表中搜索字段值的方法,然后读取价格值,然后将价格值插入此表单的字段中。

第一个表“项目”: itemname:文本 价格:货币

第二表“销售额”: itemname:文本 价格:货币 日期:时间/日期

我希望我已经足够好地解释了自己,如果没有,请问,我会尽力澄清。

2 个答案:

答案 0 :(得分:1)

这里的大多数答案都是发布太多代码和各种SQL语句。因此,这些答案正在造成世界贫困。

最简单的方法是让向导在表单上构建一个组合框以选择给定的项目。因此,该组合框将基于items表。组合框的第一列将是items表的PK(自动编号ID)。因此,此组合框将绑定到sales中的ItemID列。该向导还将“隐藏”ID,但您希望在此组合框中包含其他列,例如价格等。您可能应该在此组合框的第2列中显示项目表中项目的描述。如上所述,您还希望包含价格列。

因此,在您选择一个项目后,要自动填写价格列,请使用以下代码:

此代码进入项目组合框的AFTER更新事件:

Me.Price = me.ItemComboBox.column(2)

因此,当您选择一个项目时,价格字段将自动为您填写。并注意你只需编写一行代码。

所以这一切都可以使用内置向导和一行代码来完成。

答案 1 :(得分:0)

将事件过程(代码构建器)添加到下拉框的onchange事件中。右键单击设计视图中的下拉列表,然后选择属性。然后在属性窗口的事件选项卡上单击更改行,然后单击“...”按钮。

在此事件的代码中,您需要查询数据库(使用下拉框的索引或ID字段)将项目详细信息提取到记录集中。该查询看起来像

"SELECT * FROM Items WHERE ItemID = " & dropdownboxname.value

在网上有很多关于如何做到这一点的例子

然后,您可以使用记录集中的必填字段更新表单中的各种文本框。网上还有很多这方面的例子

编辑:回应以下评论

你需要按照......的方式做一些事情。

Dim rsItems AS DAO.Recordset
Set rsItems = CurrentDB.OpenRecordset("SELECT * FROM Items WHERE ItemID = " & dropdownboxname.value)
If not rsItems.EOF Then
    textbox1.text = rsItems![fieldname1]
    textbox2.text = rsItems![fieldname2]
end if
Set rsItems = nothing

如果有任何帮助,请告诉我; - )

相关问题