0

我最近开始使用 MS Access 2010,我正在尝试从我创建的表单中生成标签。在表单中,用户输入三项信息:样式、颜色代码和计量单位 (UoM)。样式编号在表单和报告中的显示方式相同,我已经能够让它发挥作用。

但是,对于颜色代码,我需要输入的颜色代码和实际颜色才能显示在报告上。我有一个表,其中包含所有颜色代码以及相应的颜色名称。我无法弄清楚如何获取应该显示颜色名称的文本框来显示它。我几乎不知道 SQL,但我在互联网上找到了有关它的信息,并将此代码拼凑在 ControlSource 中,用于颜色名称应该位于的文本框:

=(SELECT [Description]
FROM [Color]
WHERE([Forms]![Box Label Form]![ThirdJoined]=[Color]![ColorCode]))

[描述] 是 [颜色] 表中给出实际颜色名称的列的名称。

[Box Label Form] 是表单的名称。

[ThirdJoined] 是表单中输入文本框的名称。

[ColorCode] 是 [Color] 表中提供该颜色代码的列的名称。

此代码不起作用,只会导致#NAME 出现在打印预览视图中。我怎样才能让它工作,无论是代码还是其他方式?

4

1 回答 1

1

您不能将ControlSource文本框设置为 SQL 语句。您可以将其设置为 DLOOKUP 函数以查找单个值。您还需要使用连接 (&) 分离出对表单控件的引用。

=DLOOKUP("Description","[Color]","ColorCode='"&[Forms]![Box Label Form]![ThirdJoined]&"'")

我假设 Color 是一个文本值,所以表单值需要用撇号括起来。

如果在表单 [Box Label Form] 上使用此表达式,则无需限定控件的名称:

=DLOOKUP("Description","[Color]","ColorCode='"&[ThirdJoined]&"'")
于 2013-07-23T18:23:50.820 回答