【问题标题】:Create and Update a Single Table from SQL Backend with Multiple Tables, Using Access 2010使用 Access 2010 从具有多个表的 SQL 后端创建和更新单个表
【发布时间】:2016-01-19 15:38:32
【问题描述】:

大家早上好,

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

我有两张表,用于存放需要的数据。由于我们收到的软件更新,他们一度分裂。第一个表 dbo_PT_NC 第二个表 dbo_PT_Task

PT_NC的主键是“NCR”字段,任务表有自己的唯一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;

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


废代码(查找字段到我在 excel 中构建的另一个表)
遏制根本原因计划执行检查Act,所有这些都应该是备注字段(因为字符可能会突破 255)
完成日期流程完成的日期

需要使用我之前连接到的 SQL 后端的新记录或更改记录来更新此表(我已创建快照的数据和添加的新字段)。

更新 非常感谢 Andre.. 得到它的工作,下面的示例代码(此后我添加了更多更新字段)

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));

【问题讨论】:

  • 您的问题到底是什么?这听起来更像是对您正在做什么的项目摘要,但您遇到了什么问题?
  • 这是stackoverflow.com/questions/34865551/… 的后续问题,如果没有这个上下文,我同意不清楚问题是什么。
  • 安德烈在打字时回答时已清除评论,是的..我再次道歉..

标签: ms-access ms-access-2010


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 所以我将从第二个表 PT_Task 中添加主键,这似乎是一个 16 字符的十六进制字符串).. 在更新查询中,我将加入它们,并且“ SET”之后的所有其他字段?
  • @JamesLongfield:那是 Sql Server 中的 GUID 列吗?哎呀。但如果这是标识符(主键),那么您将不得不使用它。
  • 我不知道,这绝不是我的强项,我处理 Excel 工作簿主要是做高质量的文档,我充其量是一个后院程序员。我建立了一个简单的访问数据库来跟踪一个质量过程和突然......所有这些项目都是木制品出来的,这远远超过我的水平......在我运行这个之后,我可以将 Qlikview 链接到它以获得“漂亮的图片”......
  • 谢谢你,安德烈。经过一番努力,我设法让它工作,我将更新顶部以包含将要使用的最终代码示例。。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多