我正在尝试创建一个报告,其中包含一个名为contact
的字段,其中包含一个人的名字。此名称直接链接到另一个表,我保留所有联系人。
由于某些奇怪的原因,当我包含此名称(在查询视图中显示为联系人的姓名)时,而不是显示的名称,我的报告中会显示唯一的ID号。
答案 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 相关的数字强> Stock_PCBs
表中的 PartNumber 字段添加到查询中,然后删除 {{的 PCBID_lookup 字段来自我的查询的1}} 表。
Stock_PCBs
表的状态字段(这是 ID / Lookup )并添加了 Stock_Boards
表中的“状态”字段(实际的文字名称)完成后,您的查询应该看起来完全是您希望数据显示的方式,没有任何特殊技巧或要求Access执行不自然的操作。保存您的查询,并从中创建一个Web报告。完成!