简体   繁体   中英

Retrieve value from different fields for each record of an Access table

I would be more than appreciative for some help here, as I have been having some serious problems with this.

Background:

I have a list of unique records. For each record I have a monotonically increasing pattern (either A, B or C), and a development position (1 to 5) assigned to it.

So each of the 3 patterns is set out in five fields representing the development period.

Problem:

I need to retrieve the percentages relating to the relevant development periods, from different fields for each row. It should be in a single column called "Output".

Example:

Apologies, not sure how to attach a table here, but the fields are below, the table is a transpose of these fields.

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

In MS Excel, I could simply use a HLOOKUP or OFFSET function to do this. But how do I do this in Access? The best I have come up with so far is Output: Eval([Category]) but this doesn't seem to achieve what I want which is to select the "Dev" field, and treat this as a field when building an expression.

In practice, I have more than 100 development periods to play with, and over 800 different patterns, so "switch" methods can't work here I think.

Thanks in advance, alch84

Assuming that

  1. [ID] is a unique column (primary key), and
  2. the source column for [Output] only depends on the value of [Dev]

then this seems to work:

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

Before:

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

After:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM