2

当我尝试在行源中为我正在使用的字段应用以下 SELECT 语句时出现错误。

SELECT [Poems].[ID],
   [Poems].[Title],
   [Poems].[Year Completed],
   [Poem Types].[Poem Type],
   [Poems].[Blog Location]
FROM Poems 
INNER JOIN [Poem Types] 
   ON [Poems].[Poem Type]=[Poem Types].[ID] 
ORDER BY [Title];

错误是:

多值字段 '[Poems].[Poem Type]' 在指定的 Join 子句中无效。

表 [诗歌类型] 是在我知道如何创建值列表之前创建的。但是,实际上我现在对此很满意,因为我最终对列表进行了一些更改,它会自动更新使用该表的所有记录,如果我必须对值列表执行相同操作,我会必须单独或通过查找和替换来查看和更新​​记录。所以,小键表实际上是有用的。

如错误所示,[Poems] 中引用该表的字段是多值字段。但是,我无法从逻辑上看出这意味着什么,因为它应该只列出现有值,即使它们不止一个。不是问题。我已经确认语法是正确的,而是使用非多值字段并观察列表框很好地填充了正确的值。

所以,我的问题。我可以利用这个限制吗?例如,整个 Poems 表中只有几个条目在该字段中使用了多个值。我只允许多个值,因为在极少数情况下,一首多部分诗包含多种诗歌类型。因此,例如,如果有必要并且 Access 允许它,也许我可以过滤掉那些包含多个值的条目?或者也许还有其他方法?

任何帮助将不胜感激。

4

1 回答 1

2

长话短说,[Table].[MultiValuedField].Value当您的查询针对(以一种或另一种方式)存储在该字段中的特定值时,您需要使用语法。本文详细解释了它将产生的差异。

于 2012-11-19T01:50:20.360 回答