使用表本身中的列来查找行源查询条件

时间:2011-07-28 05:04:16

标签: sql ms-access ms-access-2007

在表的设计视图中,在Lookup选项卡中,我正在输入Row Source查询。在指定where条件时,是否有某种方法可以引用表本身的列?例如,

select [footable].[foreign] from [footable] where [footable].[id] = [self].id;

我一直对这一点感到困惑。


编辑:为了澄清一个例子,假设我正在编辑的表名为bartable,我正在为其中一个名为{{的列的下拉列表创建一个行源。 1}}。在该下拉列表中,我希望使用baz的所有行显示select [foreign] from [footable] inner join [bartable] on [footable].[id]=[bartable].[id]的行,但不显示该联接的所有结果 - 而是使用bartable当前正在显示下拉列表的id 行的值。因此,如果用户点击了bartable列中bartable行的下拉列表,并且该行的baz为23,则会显示所有id所在的[footable].[foreign] {1}}是23。

我希望更清楚。

3 个答案:

答案 0 :(得分:1)

如果你想比较同一列,它将为你提供所有行... 这种情况或where 1=1

没有区别

请检查您想要放在哪里的条件.. 或者如果从其他来源获得您的期望id,请相应地评论或编辑您的问题。

答案 1 :(得分:0)

我刚来到这个页面寻找同一个问题的答案。

首先,对问题进行一些澄清(因为似乎存在一些混淆)。您有一个条形表,它与Foo表具有外键关系。当您单击条形图表中的“baz”列时,您会看到一个下拉列表,显示Foo表中的每个行。您不希望显示Foo表中的每一行;您希望根据条形图行中已有的某些信息显示所选行的某些子集。

就我而言,我想这样做是因为Bar和Foo都与第三个表Quux有外键关系。当我使用Bar的“baz”列中的下拉列表时,我只希望Foo中的行链接到Quux中与Bar中的行链接的同一行。

这在Access 2007中对我有用:

SELECT [Foo].[PrimaryKey] FROM Foo WHERE [Foo].[ForeignKey to Quux]=[Bar].[ForeignKey to Quux]; 

答案 2 :(得分:-1)

使用" CurrentRecord"财产,例如

select [footable].[foreign]
from [footable], [bartable] 
where [footable].[id] = [bartable.fk]
and [bartable.id] = [CurrentRecord];

" bartable"是您输入"行来源"的表格。查询选项卡中的查询