在 Access 2007 中构建查询?

Posted

技术标签:

【中文标题】在 Access 2007 中构建查询?【英文标题】:Building queries in Access 2007? 【发布时间】:2015-12-16 21:39:14 【问题描述】:

我正在尝试构建一个能够获取客户名称的查询。所以我有两个表,第一个表有一个列AppointmentNO,这个字段是一个数字(还有其他列,但它们无关紧要)。在第二张表中,我有一个 ID 作为主键,FirstNameLastNameID 与第一个表中的 AppointmentNO 匹配。

基本上我要做的是链接这两个表,这样当我在一列中有AppointmentNO 时,我可以在第二列中看到与之关联的LASTNAME(需要将其包含在我的报告)。我正在尝试将 AppointmentNO 链接到 ID 和 JOIN PROPERTIES -> 包括来自左表(第一个表)的所有记录,并且只包括来自右表(第二个表)的所有记录,其中连接字段相等。

如果我尝试运行查询,它会给我一个 MISMATCH 错误。我做错了什么?

【问题讨论】:

如果你展示你的表格结构而不是用散文描述它,它会更容易阅读。听起来您想要做的是: SELECT LastName from [1stTable] WHERE [1stTable].AppointmentNo = [2ndTable].ID 【参考方案1】:

可能发生类型不匹配错误:

    因为您尝试加入的两个字段未设置为相同的数据类型(例如,一个是数字,另一个是文本) - 在属性选项卡中检查每个字段的相关字段表;

    可能是 Access 在涉及其他字段的表之间存在连接(有时它会使用 AutoID 执行此操作) - 您可以在“工具”->“关系”窗口中检查关系(并建立它们)(其中位于可能取决于您的版本)。您还可以使用此工具通过将您的“ID”连接到“ApppointNO”来显式建立关系——尽管您仍应确保这些字段具有相同的数据类型。

补充: 根据您的描述,我认为情况就是这样(如果我错了,请纠正我):

三个表 - Client、AppointmentNO、Children

在每个表中,都有一个“MemberID” - 这是客户端表中的主键,是其他表中的外键。

Children 和 AppointmentNO 表通过一对多关系链接到 Client 表(客户可以有 >1 个孩子和 >1 个约会)。

我会这样设置,以便成员 ID 在每个表中都是相同的数据类型,并在该字段上连接所有表。然后,当设置为您提供 MemberID、ClientName、ClientDOB(以及您希望从客户端表中获得的任何其他内容)、ChildName 和 AppointmentID 的查询时。一旦查询正常工作并为您提供所需的输出,您可以构建报告并按客户和客户描述对输出进行分组,因此您将获得“客户 A”,然后是约会和孩子列表,然后是“客户 B”等.

希望这很清楚。

【讨论】:

我不确定我是否应该构建一个查询。该报告由 2 个子报告组成。主要的是一个包含所有相关信息(出生日期、地址)的客户名称。然后我将孩子添加到报告中(使用子报告)。我将它们与属性窗口中的主字段链接(使用 MemberID)。第二个子报告(约会)我还与 MemberID 链接,因为它在所有三个表中。没有孩子的名字(只是一个自动 ID 不是 memberID)。孩子的名字在 Child 表中,我试图引用的 ID 在 Appointment 表中。 所以基本上我试图做的是将出现在第二个(没有名字,只有 ID)子报告中的子 ID 链接到带有 CONTROL SOURCE 的儿童表,或者你有什么。跨度> 我正在尝试将 APOINTMENT 子报表链接到 CHILDREN 的子报表,但正如您所指出的,一个是 ID(数字),名称是 varchar(25),所以这可能是给我的问题。但是,我该如何修复它?很抱歉留下这么多 ​​cmets,我有点新的访问权限,所以这就是我遇到这个问题的原因。这些表不是在访问中创建的,而是实际上是从 SQL-SERVER 导入的

以上是关于在 Access 2007 中构建查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Access2007 中使用基于 Visual Studio (2008/2010) 构建的 XML Web 服务

通过 VBA 自动使用查询从 Ms Access 2007 生成报告

Access 2007 VBA:构建一个列表框,其中包含来自另一个列表框的选择选项

关于访问 2007 查询

更改查询时 MS Access 溢出

查询中的通配符在 Access * 和 Ansi % 之间随机切换