访问2016年的关系

时间:2017-06-20 16:39:17

标签: ms-access ms-access-2016

我有一个Access 2016数据库,我正在尝试设计。我有一个表格,其中包含一个人名单tblRoster,与另一个表格的1-1关系,其中包含关于该人员的基本个人数据以及从该基本数据表到另一个表格作为查找的1-1关系。我有一个工作查询但是当我从查找表中添加一列时,没有显示数据。请帮忙弄清楚原因。

请在下面找到查询的SQL语句:

requireUsernamePassword

当我将查询表添加到查询时,没有数据填充:

SELECT tblRoster.EDIPI, [tblRoster].[LastName] & ", " & [tblRoster].[FirstName] & " " & Left$([tblRoster].[MiddleName],1) AS [Full Name], tblBasicIndividualRecords.PriMilOccSpec AS MOS, DLookUp("LongName","tblMilitaryOccupationalSpecialties","tblMilitaryOccupationalSpecialties!ID = " & [tblBasicIndividualRecords].[PriMilOccSpec]) AS [MOS Decription], DLookUp("Abbreviation","tblRankStructure","tblRankStructure!ID = " & [tblRoster].[Rank]) AS Rank, Format([EndOfActiveService],"yymmdd") AS EAS, tblBasicIndividualRecords.Billet, tblBasicIndividualRecords.OnHand, tblBasicIndividualRecords.Remarks, tblBasicIndividualRecords.Deployable, tblRankStructure.SortValue
FROM (tblRankStructure INNER JOIN tblRoster ON tblRankStructure.ID = tblRoster.Rank) INNER JOIN tblBasicIndividualRecords ON tblRoster.EDIPI = tblBasicIndividualRecords.EDIPI
ORDER BY tblRankStructure.SortValue DESC;

1 个答案:

答案 0 :(得分:0)

每当您创建或更改查询并且它无法按预期工作时,您可以采取几个步骤来分析问题并找到解决方案。最常遇到的两个问题是“选择标准”或“表连接”。查询越复杂,发现问题就越困难。

加入问题: 如果在添加新表或加入其他字段时遇到问题,请通过仅保留新表和连接所在的表来简化查询,然后进行测试。如有必要,确保您的表格实际包含匹配的数据!如果您还添加了选择条件,则将其删除。

选择标准: 如果您的更改/添加结果没有或结果不正确,请通过删除所有其他选择来简化查询,然后测试以查找原因。如有必要,请删除其他表格。

复杂查询: 有时,您可能有20个或更多联接表,其中包含20个或更多选择条件。由于测试每个可能的场景太费时间了,我想删除一半的选择标准,然后进行测试。如果仍然无效,请删除剩余标准的一半并重复测试直至其工作。如果你删除一半它现在有效,你知道问题是你删除的项目。相同的测试方法适用于连接表。首先删除没有依赖表的任何表,并测试它。继续删除表/标准,直到它工作。

其他一些调试技巧:

Managing and debugging SQL queries in MS Access

http://www.dataversity.net/debugging-complex-sql-queries/