2016-11-25 90 views
1

对于这里的一些帮助,我将不胜感激,因为我一直有一些严重的问题。为Access表的每条记录检索不同字段的值

背景:

我有独特的记录列表。对于每条记录,我都有一个单调递增的模式(A,B或C)和分配​​给它的开发位置(1到5)。

因此,这三种模式中的每一种都在代表发展时期的五个字段中列出。

问题:

我需要检索与有关发展阶段的百分比,从各行不同的领域。它应该放在一个名为“Output”的列中。

例子:

道歉,不知道如何在此附上一张桌子,但字段低于,该表是这些领域的转置。

ID - (1,2,3,4,5) 
Pattern - (A, B, C, A, C) 
Dev - (1,5,3,4,2) 
1 - (20%, 15%, 25%, 20%, 25%) 
2 - (40%, 35%, 40%, 40%, 40%) 
3 - (60%, 65%, 60%, 60%, 60%) 
4 - (80%, 85%, 65%, 80%, 65%) 
5 - (100%, 100%, 100%, 100%, 100%) 
Output - (20%, 100%, 60%, 80%, 40%) 

在MS Excel中,我可以简单地使用HLOOKUP或OFFSET函数来执行此操作。但我如何在Access中执行此操作?到目前为止我所得到的最好的是Output:Eval([Category]),但是这似乎并没有达到我想要的选择“Dev”字段,并在构建表达式时将其视为字段。

实际上,我有超过100个开发阶段可以玩,有超过800种不同的模式,所以我认为“切换”方法无法工作。

由于提前, alch84

+0

我删除了MySQL的标记,因为你的问题没有任何关系与MySQL。 –

+1

要发布样本数据:http://ozh.github.io/ascii-tables/ – Andre

+0

那么你有两张桌子?模式属于单独的表格,但我不清楚您的数据库。 – shawnt00

回答

0

假设

  1. [ID]为唯一的列(主键),和
  2. 源列[输出]仅依赖于值的[开发]

那么这似乎工作:

UPDATE tblAlvo SET Output = DLOOKUP("[" & Dev & "]", "tblAlvo", "ID=" & ID) 

前:

ID Pattern Dev 1 2 3 4 5 Output 
-- ------- --- -- -- -- -- --- ------ 
1 A   1 20 40 60 80 100 
2 B   5 15 35 65 85 100 
3 C   3 25 40 60 65 100 
4 A   4 20 40 60 80 100 
5 C   2 25 40 60 65 100 

后:

ID Pattern Dev 1 2 3 4 5 Output 
-- ------- --- -- -- -- -- --- ------ 
1 A   1 20 40 60 80 100  20 
2 B   5 15 35 65 85 100  100 
3 C   3 25 40 60 65 100  60 
4 A   4 20 40 60 80 100  80 
5 C   2 25 40 60 65 100  40 
+0

谢谢Gord - 看起来不错,但如果我没有主键,该怎么办?我知道错误的做法,但是我的Access表格是从没有主键的Excel工作簿导入的。 – Alvo

+0

如果'(ID,模式,开发)'唯一标识行,那么你可以将它们添加到DLOOKUP的WHERE参数(第三个参数,'“ID =”&ID&“AND Pattern ='”&Pattern&... ')。否则,您可以从Excel导入为您创建一个AutoNumber主键列。 –

+0

谢谢@GordThompson。 1.此公式运行但给出了“#Error!”下场。 'Dlookup(“[”&[Dev]&“]”,“tblAlvo”,“C Lob =”&[C Lob]“AND P Item =”&[P Item]&“AND Year =”AND [Year ])'。 2.从Excel导入不允许我创建一个AutoNumber主键列(至少因为我使用链接表直接链接到数据源)。 – Alvo

相关问题