我正在尝试创建一个报告,其中包含一个名为contact
的字段,其中包含一个人的名字。此名称直接链接到另一个表,我保留所有联系人。
出于某些奇怪的原因,当我包含此名称(在查询视图中显示为联系人的姓名)时,而不是显示的名称,我的报告中会显示唯一的ID号。
如上面评论中引用的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])
也会有用。
我想补充一下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相关的数字。Stock_PCBs
表中的PartNumber字段添加到查询中,并从我的查询中删除Stock_Boards
表的PCBID_lookup字段。
由于PartNumber是我想要在我的报告中显示的,它有效地取代了原始字段(PCBID_lookup)Stock_Boards
表的Status字段(这是一个ID / Lookup)并添加了Status
表中的'Status'字段(这是实际的文本名称)完成后,您的查询应该看起来完全如何显示数据,没有任何特殊技巧或要求Access做一些不自然的事情。保存您的查询,并从中创建一个Web报告。完成!