如何将一个条目替换为另一个MS Access报告?

时间:2013-07-23 18:01:16

标签: ms-access ms-office ms-access-2010

我最近开始使用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。如何以代码方式或其他方式实现此功能?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

=DLOOKUP("Description","[Color]","ColorCode='"&[ThirdJoined]&"'")