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

问题描述 投票:6回答:2

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

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

ms-access-2010
2个回答
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])

也会有用。


4
投票

我想补充一下Gord的最佳答案:

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

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

因此,代替Table - > Report,您将不得不进行W-Table - > W-Query - > W-Report。

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

  • 您的查询中应该已经有一个表;首先添加第一个查找字段指向的表。例如,我要打印的表名为Stock_Boards,它有一个名为PCBID_lookup的查找字段,指向表Stock_PCBs
  • 由于您正在使用查找字段,因此在添加第二个表时,两个表之间应该已存在关系线。如果没有,有些事情已经发生了可怕的错误。
  • 现在,看看该行如何连接两个不同表上的两个字段?例如,我在我的Stock_Boards表上有我的PCBID_lookup字段,它连接到我的Stock_PCBs表上的ID字段。如果我现在创建了一个报告,PCBID_lookup将是一个数字,一个与Stock_PCBs上记录的ID相关的数字。
  • 要修复它,我将添加我想要显示在报告上的名称字段。在我的示例中,恰好是部件号,而不是ID。我将Stock_PCBs表中的PartNumber字段添加到查询中,并从我的查询中删除Stock_Boards表的PCBID_lookup字段。 由于PartNumber是我想要在我的报告中显示的,它有效地取代了原始字段(PCBID_lookup)
  • 对报告中所需的所有查找字段重复此操作。 我还有一个:我删除了Stock_Boards表的Status字段(这是一个ID / Lookup)并添加了Status表中的'Status'字段(这是实际的文本名称)

完成后,您的查询应该看起来完全如何显示数据,没有任何特殊技巧或要求Access做一些不自然的事情。保存您的查询,并从中创建一个Web报告。完成!

© www.soinside.com 2019 - 2024. All rights reserved.