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

Posted

技术标签:

【中文标题】如何用一个条目替换另一个 MS Access 报告?【英文标题】:How do I substitute one entry for another an MS Access report? 【发布时间】:2013-07-23 18:01:15 【问题描述】:

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

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

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

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

[框标签表单]是表单的名称。

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

我尝试了代码的第一件事,它告诉我缺少结尾括号、括号或竖线。当我在它的末尾加上一个括号时,它没有给我那个错误消息,但是当我尝试打印预览时,它给了我#Error。 我已经更正了我的答案,因为括号需要在结束引号之后。但是你应该研究这个而不是仅仅复制和粘贴它。

以上是关于如何用一个条目替换另一个 MS Access 报告?的主要内容,如果未能解决你的问题,请参考以下文章

MS Access:如何使用查询按月选择条目

如何用python中其他数据帧中的条目替换一个数据帧中列的丢失条目?

MS Access:将报告另存为 PDF 的命令按钮

在MYSQL中如何用一个字段的值替换另一个字段的值

MS Access 报告“每个细节”格式化和 VBA 中的访问

MS Access 报告问题?