访问:使用另一个字段中的选择填充组合框

问题描述 投票:0回答:2

我刚刚学习如何使用 Access,虽然我已经设法糊涂地完成了我想做的大部分事情,但有些事情我还不知道该怎么做。

我有两个表格和相应的表格。 frmProducts 中包含 ColorOptions(一个多选组合框,其中包含产品可能的颜色选项列表)和 Design(名称的文本控件)。在 frmCustomers 中是 OrderDesign,一个组合框,其中包含 tblProducts 中的项目列表,以及 OrderColours,一个组合框。

现在,这就是问题:我希望 OrderColours 显示 tblProducts 中的颜色选项列表,但我不知道如何操作。我可以让它显示值,但它不是一个项目列表,只是一个带有“列表”的条目(例如,一个条目为“棕色,红色,绿色”)。我希望用户能够从该子集中选择单个项目。

理想情况下,我希望在不干扰 VBA 或任何高级 SQL 的情况下完成此操作,但如果不可能,那也没关系。我认为问题可能是包含该产品颜色的颜色字段存储为文本,但我不确定如何存储它,因为数据类型没有“数组”或“列表”选项。

抱歉,如果我说得不够清楚,或者如果这是发布在错误的子目录中。我是Access的初学者,所以我可能不够清楚或者使用了错误的术语。任何帮助将不胜感激。

ms-access combobox
2个回答
1
投票

我不太确定我到底理解你想要如何设置,所以我假设如下。如果不对请纠正:

  • tblProducts 包含(至少)两个字段 productDesignproductColour
  • tblProducts中可能存在多个具有相同productDesign但不同productColour(同一设计的不同颜色)的记录

tblProducts

  • 还有另一个表,tblCustomers,其中每条记录都包含一个productDesign和一个相应的productColours。

因此,您需要组合框 OrderColours 来显示 OrderProducts 中选定的 ProductDesign 值的可能的 ProductColours 列表。


现在,按如下方式设置组合框 OrderDesign:

  • 行源类型:表/查询
  • 行源: 从 tblProducts 中选择不同的 tblProducts.productDesign;

和订单颜色:

  • 行源类型:表/查询
  • 行源: SELECT tblProducts.productColour、tblProducts.productDesign FROM tblProducts WHERE (((tblProducts.productDesign)=[Forms]![frmCustomers]![OrderDesign]));
  • 列数: 1

并为 OrderDesign 提供以下事件 AfterUpdate:

Private Sub OrderDesign_AfterUpdate()

  Me.OrderColour = Null
  Me.OrderColour.Requery
  Me.OrderColour = Me.OrderColour.ItemData(0)

End Sub

如果您的组合框已绑定,您可能还需要考虑在记录之间移动时会发生什么:

Private Sub Form_Current()
  Me.OrderColour.Requery
End Sub

在 Form_Current 事件中应该可以解决问题。

阅读本文了解详情。


0
投票

早上好亲爱的团 我创建了一个学校的数据库,我打算通过查找我的组合框通过选择班级级别来为同一班级组中的所有孩子提供信息,但徒劳无功,请帮助

© www.soinside.com 2019 - 2024. All rights reserved.