为什么 Access 会自发地开始在查询中显示不存在的 table?
Why would Access spontaneously start displaying a non-existant table in a query?
我更新了一个简单的 Access select 查询,添加了查询使用的单个 table 中的四个字段。然后,当我尝试以引用该查询的形式编辑数据时,Access 不允许进行任何编辑。在研究了其他可能的编辑权限问题后,我回到了查询设计,看到了这个:
数据库中不存在 table CC_Tracker_1,也没有该名称的查询,如您在对象列表中所见:
在设计视图中,CC_Tracker_1 显示为 CC_Tracker 的精确副本。此外,我添加的四个字段将 CC_Tracker_1 列为它们的 table 来源。
从查询中删除 CC_Tracker_1 并重新添加 CC_Tracker 中的字段解决了问题,但我很好奇这是怎么发生的。
编辑补充:这是SQL访问生成的。正如您所看到的,它创建的别名没有在代码的任何地方使用,除了在变量列表中。为什么它会这样做仍然是个问题:
SELECT CC_Tracker.LAST_NAME, CC_Tracker.FIRST_NAME, CC_Tracker.MRN, CC_Tracker.RIN,
CC_Tracker.SUBSCRIBER_ID, CC_Tracker.ASSIGNED, CC_Tracker.Letter, CC_Tracker.[1stCall],
CC_Tracker.CHRA, CC_Tracker.[ICP/Review], CC_Tracker.F2F, CC_Tracker.ICTCont,
CC_Tracker.ICTSheet, CC_Tracker.ICP2MD, CC_Tracker.SigPg, CC_Tracker.HTR_1st_cont,
CC_Tracker.HTR_2nd_cont, CC_Tracker.HTR_3rd_cont, CC_Tracker.HTR_Letter,
CC_Tracker.CLOSE, CC_Tracker.Comments, CC_Tracker.CHRA_Next, CC_Tracker.ICP_Next,
CC_Tracker.F2F_Next, CC_Tracker.ICT_Next, CC_Tracker_1.Final_Follow, CC_Tracker_1.BH_SA,
CC_Tracker_1.Readmitter, CC_Tracker_1.CCM, CC_Tracker.ASSIGNED_CARE_COORDINATOR, CC_Tracker.Final_Follow
FROM CC_Tracker, CC_Tracker AS CC_Tracker_1
WHERE (((CC_Tracker.ASSIGNED_CARE_COORDINATOR)=[Forms]![frmCoord_Selector]![cmbCoords]))
OR (((([CC_Tracker].[ASSIGNED_CARE_COORDINATOR])
Like [Forms]![frmCoord_Selector]![cmbCoords]) Is Null));
如果您查看为查询生成的 SQL
,您将看到它为 CC_Tracker
table 创建了一个名为 CC_Tracker_1
的别名。
您的查询可能需要重写以排除此别名和任何不正确的联接。
如果您 post 生成了实际查询,我们将能够帮助修复它。
我更新了一个简单的 Access select 查询,添加了查询使用的单个 table 中的四个字段。然后,当我尝试以引用该查询的形式编辑数据时,Access 不允许进行任何编辑。在研究了其他可能的编辑权限问题后,我回到了查询设计,看到了这个:
数据库中不存在 table CC_Tracker_1,也没有该名称的查询,如您在对象列表中所见:
在设计视图中,CC_Tracker_1 显示为 CC_Tracker 的精确副本。此外,我添加的四个字段将 CC_Tracker_1 列为它们的 table 来源。
从查询中删除 CC_Tracker_1 并重新添加 CC_Tracker 中的字段解决了问题,但我很好奇这是怎么发生的。
编辑补充:这是SQL访问生成的。正如您所看到的,它创建的别名没有在代码的任何地方使用,除了在变量列表中。为什么它会这样做仍然是个问题:
SELECT CC_Tracker.LAST_NAME, CC_Tracker.FIRST_NAME, CC_Tracker.MRN, CC_Tracker.RIN,
CC_Tracker.SUBSCRIBER_ID, CC_Tracker.ASSIGNED, CC_Tracker.Letter, CC_Tracker.[1stCall],
CC_Tracker.CHRA, CC_Tracker.[ICP/Review], CC_Tracker.F2F, CC_Tracker.ICTCont,
CC_Tracker.ICTSheet, CC_Tracker.ICP2MD, CC_Tracker.SigPg, CC_Tracker.HTR_1st_cont,
CC_Tracker.HTR_2nd_cont, CC_Tracker.HTR_3rd_cont, CC_Tracker.HTR_Letter,
CC_Tracker.CLOSE, CC_Tracker.Comments, CC_Tracker.CHRA_Next, CC_Tracker.ICP_Next,
CC_Tracker.F2F_Next, CC_Tracker.ICT_Next, CC_Tracker_1.Final_Follow, CC_Tracker_1.BH_SA,
CC_Tracker_1.Readmitter, CC_Tracker_1.CCM, CC_Tracker.ASSIGNED_CARE_COORDINATOR, CC_Tracker.Final_Follow
FROM CC_Tracker, CC_Tracker AS CC_Tracker_1
WHERE (((CC_Tracker.ASSIGNED_CARE_COORDINATOR)=[Forms]![frmCoord_Selector]![cmbCoords]))
OR (((([CC_Tracker].[ASSIGNED_CARE_COORDINATOR])
Like [Forms]![frmCoord_Selector]![cmbCoords]) Is Null));
如果您查看为查询生成的 SQL
,您将看到它为 CC_Tracker
table 创建了一个名为 CC_Tracker_1
的别名。
您的查询可能需要重写以排除此别名和任何不正确的联接。
如果您 post 生成了实际查询,我们将能够帮助修复它。