大家下午好,
我有权连接到一些质量软件的后端,我们内部(SQL)和拉两个表(软件公司做了一个更新,并将数据分成两个表),这些表被加入和转储到一个表(tblWeakPointMaster)与一个Make查询。主键没有在转储中传输,新列(Aunonumber)添加了后快照,以及我们将要添加的数据的一些附加列。
由于数据已经被提取过一次,我使用相同的Make查询将其转储到一个新的(tblWeakPointUpdates),中,并且我希望运行一个update查询来将new并将记录从这个表转换为tblWeakPointMaster,让他们使用它。我遇到的问题是在运行更新查询时我会收到错误(无法在备忘录、OLE或超链接上加入.)
问题是,它拒绝的字段不是这些字段中的任何一个。是什么导致了这个问题。到目前为止,它遇到问题的所有字段都是50个字符或以下的文本字段,这些字段是完全相同的(因为它们是从同一个Make查询中生成的)
我无法找到关于这个特定错误的任何信息,我不确定这是否是访问限制,是否存在被提取数据的问题,或者说我是不是太过头了?
更新
这两张表的图片我突出显示了我从SQL数据库中提取的字段,这些字段也是我试图更新的字段。表已在图像中标记。
Access for Update查询中使用的SQL im (由Access生成)
UPDATE tblWeakPointMaster INNER JOIN tblWeakPointUpdates ON
(tblWeakPointMaster.TaskTypeID = tblWeakPointUpdates.TaskTypeID) AND
(tblWeakPointMaster.NCR = tblWeakPointUpdates.NCR) AND
(tblWeakPointMaster.NCR_Date = tblWeakPointUpdates.NCR_Date) AND
(tblWeakPointMaster.NC_type = tblWeakPointUpdates.NC_type) AND
(tblWeakPointMaster.Customer = tblWeakPointUpdates.Customer) AND
(tblWeakPointMaster.Material = tblWeakPointUpdates.Material) AND
(tblWeakPointMaster.Rev = tblWeakPointUpdates.Rev) AND
(tblWeakPointMaster.Qty_rejected = tblWeakPointUpdates.Qty_rejected) AND
(tblWeakPointMaster.TaskType = tblWeakPointUpdates.TaskType) AND
(tblWeakPointMaster.dbo_PT_Task_Notes = tblWeakPointUpdates.dbo_PT_Task_Notes) AND
(tblWeakPointMaster.Origin = tblWeakPointUpdates.Origin) AND
(tblWeakPointMaster.Origin_ref = tblWeakPointUpdates.Origin_ref) AND
(tblWeakPointMaster.Origin_cause = tblWeakPointUpdates.Origin_cause) AND
(tblWeakPointMaster.Origin_category = tblWeakPointUpdates.Origin_category)
SET tblWeakPointMaster.TaskTypeID = [tblWeakPointUpdates].[TaskTypeID],
tblWeakPointMaster.NCR = [tblWeakPointUpdates].[NCR],
tblWeakPointMaster.NCR_Date = [tblWeakPointUpdates].[NCR_Date],
tblWeakPointMaster.NC_type = [tblWeakPointUpdates].[NC_type],
tblWeakPointMaster.Customer = [tblWeakPointUpdates].[Customer],
tblWeakPointMaster.Material = [tblWeakPointUpdates].[Material],
tblWeakPointMaster.Rev = [tblWeakPointUpdates].[Rev],
tblWeakPointMaster.Qty_rejected = [tblWeakPointUpdates].[Qty_rejected],
tblWeakPointMaster.TaskType = [tblWeakPointUpdates].[TaskType],
tblWeakPointMaster.dbo_PT_Task_Notes = [tblWeakPointUpdates].[dbo_PT_Task_Notes],
tblWeakPointMaster.Origin = [tblWeakPointUpdates].[Origin],
tblWeakPointMaster.Origin_ref = [tblWeakPointUpdates].[Origin_ref],
tblWeakPointMaster.Origin_cause = [tblWeakPointUpdates].[Origin_cause],
tblWeakPointMaster.Origin_category = [tblWeakPointUpdates].[Origin_category];我收到的错误信息
-james
发布于 2016-01-19 12:58:54
首先是直接问题:查询连接所有字段,包括
AND (tblWeakPointMaster.dbo_PT_Task_Notes = tblWeakPointUpdates.dbo_PT_Task_Notes)这是一个备注字段,因此查询失败。
错误消息被截断(Access通常使用长SQL表达式执行此操作),因此没有列出dbo_PT_Task_Notes。但这就是原因。
实际问题
即使没有“备注”字段,查询也不会执行您想要的操作。
如果您对所有字段执行内部连接,则只有完全相同的记录才会被连接,并且更新没有意义。
您必须区分这些字段:
SET部分,它们是要更新的字段。为什么不导出和导入主键呢?这将使任务变得琐碎--第一组将由主键组成,其余部分的第二组组成。
https://stackoverflow.com/questions/34865551
复制相似问题