查找字段在Access报告中显示为数值而不是文本

时间:2014-01-21 21:23:32

标签: ms-access-2010

我正在尝试创建一个报告,其中包含一个名为contact的字段,其中包含一个人的名字。此名称直接链接到另一个表,我保留所有联系人。

由于某些奇怪的原因,当我包含此名称(在查询视图中显示为联系人的姓名)时,而不是显示的名称,我的报告中会显示唯一的ID号。

2 个答案:

答案 0 :(得分:9)

正如上面评论中引用的article中所述,您可以在报表上使用Combo Box控件为您执行查找。要查看如何执行此操作,请基于包含查找字段的创建新报表,然后将该字段拖放到报表上。这将创建一个Combo Box控件,其属性看起来像这样:

行来源:SELECT [Clients].[ID], [Clients].[LastName] FROM Clients;
绑定列:1
列数:2
列宽:0";1"

您可以在实际报告中使用类似的组合框控件来显示客户端的名称,而不是其数字ID值。

另一种方法是更改​​报表文本框控件的Control Source,使其在表格上执行DLookUp()。如果查找字段名为[client],则将文本框的Control Source更改为

=DLookUp("LastName","Clients","ID=" & [client])

也可以。

答案 1 :(得分:4)

我想补充一下Gord的好答案:

使用“网络”数据库(我认为在Access 2007中启动)时,您无法将报告的字段更改为ComboBox样式,也无法使用DLookUp()。 (网络数据库缺乏大量功能)

如果要创建使用查找字段 Web报表,解决此问题的方法是首先根据Web表创建Web查询(所有的 Web - * 东西在徽标上都有一个www星球图标,如果你在Access 2007+中创建一个新的Web-DB,你会看到我的意思)

所以,而不是表 - >报告,您必须执行 W-Table - > W-Query - > W-报告

然后,您需要自定义以获得正确的数据是 W-Query 。首先尝试重现查询中的外观,以匹配您希望用户在报告中看到的内容。请注意,在查询中,查找将正常工作(而不是唯一的ID,您可以获得所需的字段名称)。但是,这不会延续到报告中。为此,您必须在查询中获得所需的实际文本字段名称:

  • 您的查询中应该已经有一个表;首先添加第一个查找字段指向的表。例如,我要打印的表名为 Stock_Boards ,它有一个名为 PCBID_lookup 的查找字段,指向表 {{1 }} 即可。
  • 由于您正在使用查找字段,因此在添加第二个表时,两个表之间应该已存在关系线。如果没有,那就出现了可怕的错误。
  • 现在,看看该行如何连接两个不同表上的两个字段?例如,我的 Stock_PCBs 表中有 PCBID_lookup 字段,该字段连接到上的 ID 字段> Stock_Boards 表。如果我现在创建了一个报告, PCBID_lookup 将是一个数字,一个与 Stock_PCBs上的记录的 ID 相关的数字
  • 要解决此问题,我将添加要在报告中显示的名称字段。在我的示例中,恰好是部件号,而不是ID。我将 Stock_PCBs 表中的 PartNumber 字段添加到查询中,然后删除 {{的 PCBID_lookup 字段来自我的查询的1}} 表。
    • 由于 PartNumber 是我想在报告中显示的内容,因此它有效地取代了原始字段( PCBID_lookup
  • 对报告中所需的所有查找字段重复此操作。
    • 我还有1个:我删除了 Stock_PCBs 表的状态字段(这是 ID / Lookup )并添加了 Stock_Boards 表中的“状态”字段(实际的文字名称

完成后,您的查询应该看起来完全是您希望数据显示的方式,没有任何特殊技巧或要求Access执行不自然的操作。保存您的查询,并从中创建一个Web报告。完成!