我在Access中有一个链接表,我想从本地表更新。问题是链接表用于规范,因此每个属性包含一行。例如,链接表中使用的两个字段是ATTRIBUTE_DESC和ATTRIBUTE_VALUE。每个规范可能有多个描述。以下是链接表中的示例:
SPECIFICATION_NO SPEC_SEQ_NO ATTRIBUTE_DESC ATTRIBUTE_VALUE
------------------ ----------- --------------- -----------------
0000000001 10 MANUFACTURER AMERICAN DARLING
0000000001 15 MODEL B84B-5
0000000001 20 YEAR MANUFACTURED 2000
0000000001 25 DATE INSTALLED 5/3/1999
0000000001 30 EXTENSION LENGTH
0000000001 35 MAIN VALVE SIZE 6
0000000001 40 ISOLATION VALVE DIAMETER
0000000001 45 ISOLATION VALVE DIRECTION
0000000001 50 ISOLATION VALVE DISTANCE
0000000001 55 AS BUILT # C025-106-113
0000000001 60 ENVIRONMENT
0000000001 65 STR
0000000001 70 FIVE YEAR PM DUE OCTOBER 2015
本地表根据链接表中的ATTRIBUTE_DESC具有不同的ATTRIBUTE_VALUES。例如,MANUFACTURER上面可能是CLOW而不是AMERICAN DARLING。
我创建的查询包含表中的所有相关规范信息,并且我使用了具有不同条件的ATTRIBUTE_DESC来更新ATTRIBUTE_VALUE。
不幸的是这样做我得到一个错误“Duplicate Output Destination”PROD_SA_SPECIFICATION_DETAILS.ATTRIBUTE_VALUE“。所以我的问题是是否有更好的方法来更新这种类型的表 - 通过不同的查询设置或通过VBA。我不知道多少VBA所以如果这是最好的答案,我可以得到其中一个属性的例子吗?
感谢。
答案 0 :(得分:0)
我的查询是这样的:
正在更新的表:PROD_SA_SPECIFICATION_DETAILS
字段:ATTRIBUTE_VALUE 表:PROD_SA_SPECIFICATION_DETAILS 更新至:[更新:SA_SPECIFICATION_DETAILS]。[ATTRIBUTE_VALUE] 标准:制造商
所以我对每个标准都一样,没有一个标准重复。在上面的情况中,如上所述将有13个具有不同标准。我知道我可以使用序列号,因为它们对于每个规范是不同的,但我们偶尔添加行和删除行,我宁愿不必记住更新查询,以便错误的信息进入错误的字段。
我意识到这个表没有规范化,这是设计的(责怪Oracle)。它没有标准化,因为各种规格可能是可变长度,即一些可能有10行,有些可能有12.这个表有两个部分,另一个是SA_SPECIFICATION_DATA,它由specification_no链接。