使用 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 的查找字段)
遏制、根本原因、计划、执行、Check 和 Act,所有这些最有可能是备忘录字段(因为字符可能会中断 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_NC
和 PT_Task
之间存在 1:n 关系?
那么您应该在导入 SELECT 中包含 两个 主键。
将它们用作 Access 表中的复合主键,而不是新的 KEY
列。或者,如果因为其他表链接到 tblWeakPointMaster
而这样做不切实际,您也可以保留该主键。
但无论如何,这两列构成了 tblWeakPointMaster
和 tblWeakPointUpdates
之间的 JOIN。
所有其他列可用于从 tblWeakPointUpdates
更新 tblWeakPointMaster
(假设它们可以在原始数据库中编辑)。
编辑:如果不将它们用作组合主键,则需要在组合上创建唯一索引,否则 JOIN 将无法更新,我想。
大家早上好,
我在从 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 的查找字段)
遏制、根本原因、计划、执行、Check 和 Act,所有这些最有可能是备忘录字段(因为字符可能会中断 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_NC
和 PT_Task
之间存在 1:n 关系?
那么您应该在导入 SELECT 中包含 两个 主键。
将它们用作 Access 表中的复合主键,而不是新的 KEY
列。或者,如果因为其他表链接到 tblWeakPointMaster
而这样做不切实际,您也可以保留该主键。
但无论如何,这两列构成了 tblWeakPointMaster
和 tblWeakPointUpdates
之间的 JOIN。
所有其他列可用于从 tblWeakPointUpdates
更新 tblWeakPointMaster
(假设它们可以在原始数据库中编辑)。
编辑:如果不将它们用作组合主键,则需要在组合上创建唯一索引,否则 JOIN 将无法更新,我想。