2011-06-09 103 views
0

我有其中有3条信息的Microsoft Access问题

COMBO BOX 210组合框:材料ID,产品,成本,说明

的名称后,我更新组合框的成本数字存储在表中的另一个领域,迄今为止这么好,所以在选择“苹果”时,成本为“1美元”的商店。

现在,我想要的是有一个不同的字段,其中存储的苹果(文本)的描述,但我只更新组合框一次,换句话说更新组合框后字段1存储的价格和字段2描述了苹果。

回答

2

我会为您提供一个不同的例子,我希望它与您所要求的类似。

我的表单包含一个名为cboNames的组合。这是其行来源查询:

SELECT f.id, f.fname, f.date_added 
FROM food_test AS f 
ORDER BY f.fname, f.date_added; 

在组合的更新事件后,我可以参照列索引访问选定的组合行中的3列的值。注意列索引编号从零开始。

Private Sub cboNames_AfterUpdate() 
    Debug.Print Me.cboNames.Column(0) 
    Debug.Print Me.cboNames.Column(1) 
    Debug.Print Me.cboNames.Column(2) 
End Sub 

所以如果我想把date_added值放到另一个数据控件中,我可以将它添加到组合的After After事件中。

Me.SomeOtherControl = Me.cboNames.Colummn(2) 

但是我不会实际存储两个编号,而在另一个表中的行DATE_ADDED。在我的食物表中,每个ID都与fname和date_added的唯一组合关联。所以我只会存储id,并且在食物表中使用一个带有JOIN的SELECT来在需要时查找相关的fname和date_added值。

+0

但是在这种情况下,如果产品描述可能会改变(因为价格可能),您可能想要存储它,因为在这种情况下,它不是真正的派生数据。 – 2011-06-12 22:23:52