【问题标题】:How do I substitute one entry for another an MS Access report?如何用一个条目替换另一个 MS Access 报告?
【发布时间】: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 出现在打印预览视图中。我怎样才能让它工作,无论是代码还是其他方式?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 我尝试了代码的第一件事,它告诉我缺少结尾括号、括号或竖线。当我在它的末尾加上一个括号时,它没有给我那个错误消息,但是当我尝试打印预览时,它给了我#Error。
    • 我已经更正了我的答案,因为括号需要在结束引号之后。但是你应该研究这个而不是仅仅复制和粘贴它。
    猜你喜欢
    • 2015-10-10
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多