从Access表的每个记录中检索不同字段的值

时间:2016-11-25 14:33:56

标签: sql string ms-access ms-access-2010 eval

我非常感谢你们在这里提供一些帮助,因为我遇到了一些严重的问题。

背景

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

因此,3个模式中的每一个都在表示开发期的五个字段中列出。

问题:

我需要从每行的不同字段中检索与相关开发期相关的百分比。它应该在一个名为“输出”的列中。

示例:

道歉,不知道如何在这里附表,但是字段在下面,表格是这些字段的转置。

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

1 个答案:

答案 0 :(得分:0)

假设

  1. [ID]是唯一列(主键)和
  2. [输出]的源列仅取决于[Dev]
  3. 的值

    然后这似乎有效:

    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