1

我们的产品列表有一个 Access 2013 数据库,我在 Access 工作了大约一个月。我们在表 1 中有 SKU 以及类别、描述等字段。

现在我需要在表 1 中添加更多字段,包括权重列和缺货消息列。

我们对其进行了设置,以便只允许一个 SKU 的一个实例,不能重复。我认为这就是为什么当我尝试导入带有权重和消息的 Excel 文件时,导入失败,因为所有“记录因密钥违规而丢失”。我的文件没有其他错误。我还在研究拆分数据库的前端,如果这有所作为的话。

因此,我将 Excel 文件导入了一个新表(表 2)。我正在尝试运行 UPDATE 查询,但我很难使用标准。

例如,在 SKU F496、K4492-92 和 P49201 上,我需要使用表 2 中的权重和消息值更新它们在表 1 中的空白权重和消息字段(所有权重和消息都是唯一的)。这将适用于 2000 多种产品。

这似乎是一件基本的事情,我已经搜索过,但也许我没有正确的短语。

4

1 回答 1

1

首先从查询设计器的设计视图构建SELECT查询。选择两个表,然后右键单击每个表的标题,为表名分配别名:t1for Table 1; 并且t2对于Table 2. 接下来在SKU字段之间拖动一条线以在它们之间创建一条线INNER JOIN。将SKUweightmessage字段添加Table 1到设计网格。运行查询(切换到数据表视图)以确认结果是合理的。如果您随后切换到 SQL 视图,您应该会看到与此类似的语句...

SELECT
    t1.SKU,
    t1.weight,
    t1.message
FROM
    [Table 1] AS t1
    INNER JOIN [Table 2] AS t2
    ON t1.SKU = t2.SKU;

如果没问题,切换回设计视图,找到设计功能区的查询类型部分并将类型更改为更新。在weight字段下的“更新至:”行中,输入[t2].[weight]。并在 下输入[t2].[message]message

当你再次切换到 SQL View 时,你应该会看到这样的语句......

UPDATE
    [Table 1] AS t1
    INNER JOIN [Table 2] AS t2
    ON t1.SKU = t2.SKU
SET
    t1.weight = [t2].[weight],
    t1.message = [t2].[message];

如果看起来没问题,请执行查询。如果更新未按预期工作,请复制语句文本,将其粘贴到您的问题中,包括任何错误消息的全文,并解释结果与您需要的结果有何不同。

于 2013-10-18T23:19:35.503 回答