使用 Access 2010 从具有多个 Table 的 SQL 后端创建和更新单个 Table

Create and Update a Single Table from SQL Backend with Multiple Tables, Using Access 2010

大家早上好,

我在从 SQL 后端提取我需要的数据并保持最新时遇到问题。

我有两个 table,用于保存需要的数据。由于我们收到的软件更新,它们曾一度分裂。第一个Tabledbo_PT_NC第二个Tabledbo_PT_Task

PT_NC的主键是“NCR”字段,任务Table有自己的唯一 ID,但 PT_Task.TaskTypeID 字段链接到“NCR”字段

SELECT dbo_PT_Task.TaskTypeID, 
dbo_PT_NC.NCR, 
dbo_PT_NC.NCR_Date, 
dbo_PT_NC.NC_type, 
dbo_PT_NC.Customer, 
dbo_PT_NC.Material, 
dbo_PT_NC.Rev, 
dbo_PT_NC.Qty_rejected, 
dbo_PT_Task.TaskType, 
dbo_PT_Task.Notes AS dbo_PT_Task_Notes, 
dbo_PT_NC.Origin, 
dbo_PT_NC.Origin_ref, 
dbo_PT_NC.Origin_cause, 
dbo_PT_NC.Origin_category
FROM dbo_PT_NC INNER JOIN dbo_PT_Task ON dbo_PT_NC.[NCR] = dbo_PT_Task.[TaskTypeID]
WHERE (((dbo_PT_NC.NCR_Date)>=#1/1/2016#) AND ((dbo_PT_Task.TaskSubType)="Origination"))
ORDER BY dbo_PT_NC.NCR_Date, dbo_PT_NC.Customer;

在我将这些数据提取并放入快照后(我不希望前端用户可以访问实时数据)我将为我们正在实施的弱点管理系统添加列,字段如:


Scrap Code(我在 excel 中构建的另一个 table 的查找字段)
遏制根本原因计划执行CheckAct,所有这些最有可能是备忘录字段(因为字符可能会中断 255)
完成日期流程完成的日期

此 table(我拍摄的数据和添加的新字段)将需要使用我之前连接到的 SQL 后端的新记录或更改记录进行更新。

更新 非常感谢安德烈..让它工作,下面的示例代码(我已经添加了更多更新字段)

UPDATE tblWeakPointMaster, dbo_PT_NC INNER JOIN dbo_PT_Task ON dbo_PT_NC.NCR = dbo_PT_Task.TaskTypeID 
SET tblWeakPointMaster.Qty_rejected = [dbo_PT_NC].[Qty_rejected], 
tblWeakPointMaster.dbo_PT_Task_Notes = [dbo_PT_Task].[Notes], 
tblWeakPointMaster.Material = [dbo_PT_NC].[Material], 
tblWeakPointMaster.Rev = [dbo_PT_NC].[Rev], 
tblWeakPointMaster.NC_type = [dbo_PT_NC].[NC_type]
WHERE (((tblWeakPointMaster.NCR)=dbo_PT_NC.NCR) And ((tblWeakPointMaster.TaskID)=dbo_PT_Task.TaskID));

我假设 PT_NCPT_Task 之间存在 1:n 关系?

那么您应该在导入 SELECT 中包含 两个 主键。

将它们用作 Access 表中的复合主键,而不是新的 KEY 列。或者,如果因为其他表链接到 tblWeakPointMaster 而这样做不切实际,您也可以保留该主键。

但无论如何,这两列构成了 tblWeakPointMastertblWeakPointUpdates 之间的 JOIN。

所有其他列可用于从 tblWeakPointUpdates 更新 tblWeakPointMaster(假设它们可以在原始数据库中编辑)。

编辑:如果不将它们用作组合主键,则需要在组合上创建唯一索引,否则 JOIN 将无法更新,我想。