1

看来我在 MS Access 2010 中遇到了障碍。

很难解释我想要实现的目标,所以我将从一个基本示例开始。假设我们有两个表:A 和 B。

A:

ID     Price    Item
1      5        ABB
2      4        ATV
3      2        CCC

乙:

ID     Price limit    Chosen item
1      3    
2      4
3      5
4      6

我想要实现的是创建从表 A 到 B 的关系。表 B 中的每条记录都必须有关联的表 A 记录。它应该基于表 A 字段“价格”和表 B 字段“价格限制”,以使从表 A 中选择的记录的价格低于表 B 记录中施加的价格限制。

也就是说,对于第一个表 B 记录,可能的表 A 记录只有 CCC,对于第二个 - ATV 和 CCC,而对于第三个和第四个所有记录都是有效的。

就我有限的访问知识而言,我认为我应该在“Chosen item”字段行源属性中编写一个查询。但是,我尝试自己编写它,但没有成功。这是我想出的:

SELECT [Table A].[ID], [Table A].[Item] 
FROM [Table A] 
WHERE [Table A].[Val] > [Val]; 

但它不起作用。有人可以指出我正确的方向吗?

4

1 回答 1

2

我认为你想要这样的东西,下拉框只包含相关项目:

在此处输入图像描述

您可以通过设置组合的行源来设置它,

select item from ta where price<=forms!tb!pricelimit

并添加一点代码

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

请注意,此方法带有警告。像这样在连续表单上的 Usong 下拉菜单会严重扰乱当前行以外的任何行上的数据显示。在这种情况下,显示很好,因为绑定的列和要显示的数据是相同的,但是,如果选择是:

 Row Source: select id,item from ta where price<=forms!tb!pricelimit
 Bound Column: 1
 Column Widths : 0cm;2cm

当当前记录的选择生成一个不包含其他行 ID 的列表时,数据似乎会从记录中消失。也就是说,如果当前行的选择返回 ID 1 和 2,并且下一行已经选择了 ID 3,则下一行的组合将显示为空,依此类推。

于 2013-02-23T23:17:51.650 回答