Ms access 访问2016关系

Ms access 访问2016关系,ms-access,ms-access-2016,Ms Access,Ms Access 2016,我有一个Access 2016数据库,我正在尝试设计。我有一个表,其中有一个人员列表tblRoster,一个与另一个表的1-1关系,另一个表包含有关人员的基本个人数据,以及从这个基本数据表到另一个表的1-1关系作为查找。我有一个工作查询,但当我从查找表中添加一列时,不会显示任何数据。请帮我找出原因 请在下面找到查询的SQL语句: SELECT tblRoster.EDIPI, [tblRoster].[LastName] & ", " & [tblRoster].[FirstNa

我有一个Access 2016数据库,我正在尝试设计。我有一个表,其中有一个人员列表tblRoster,一个与另一个表的1-1关系,另一个表包含有关人员的基本个人数据,以及从这个基本数据表到另一个表的1-1关系作为查找。我有一个工作查询,但当我从查找表中添加一列时,不会显示任何数据。请帮我找出原因

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

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;
将查找表添加到查询时,不会填充任何数据:

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, tblMilitaryOccupationalSpecialties.SortOrder
FROM tblMilitaryOccupationalSpecialties INNER JOIN ((tblRankStructure INNER JOIN tblRoster ON tblRankStructure.ID = tblRoster.Rank) INNER JOIN tblBasicIndividualRecords ON tblRoster.EDIPI = tblBasicIndividualRecords.EDIPI) ON (tblMilitaryOccupationalSpecialties.ID = tblBasicIndividualRecords.AddMilOccSpec.Value) AND (tblMilitaryOccupationalSpecialties.ID = tblBasicIndividualRecords.PriMilOccSpec)
ORDER BY tblRankStructure.SortValue DESC;

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

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

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

复杂查询: 有时,您可能会有20个或更多具有20个或更多选择条件的联接表。因为测试每个可能的场景太耗时了,所以我想删除一半的选择标准,然后进行测试。如果仍然不起作用,请删除剩余标准的一半,并重复测试,直到它起作用。如果您删除了一半并且现在可以正常工作,那么您知道问题出在您删除的项目上。相同的测试方法也适用于连接的表。首先删除所有没有依赖表的表,并测试它。继续删除表/条件,直到它起作用

其他一些调试提示:


发布您正在使用的查询。你的意思是“当我添加一列时…”还是“当我添加一行时…”在将查找表添加到查询之前,我为查询添加了SQL语句。在将查找表添加到查询之后,我还添加了SQL语句。我不是指吵架;我的意思是在查询设计中向查询添加一列。您正在向SQL中添加一个新表,并将该表中的“ID”字段与字段“tblBasicIndividualRecords.primilocspec”和字段“tblBasicIndividualRecords.AddMilOccSpec.Value”连接起来。因此,您的问题似乎是其中之一(或两者兼而有之)。我建议您通过创建一个只包含两个表和两个新联接和测试中的一个的简单查询来进行测试。如果有效,请尝试其他连接。如果失败,请更正,重新测试,然后重复第二次新加入。谢谢!我不认为一开始是一个简单的查询。如果你能以答案的形式写下来,我会接受你的答案。