-1

私はミリ秒アクセスで賞システムを作成していますが、2 つの異なるパラメーターに if ステートメントを使用しようとしています。つまり、あるクラスの上位 3 人の学生は、別のクラスの上位 3 人の学生とは異なる金額を受け取ります。すべてのクラスのすべてのデータが 1 つのテーブルにあります。

見る:

Student ID  Class ID    Average Rank    Awards
1111    Form4            77.79166667        2   
1189    Form4                    105        1   
1222    Form4            73.41666667        3   
1234    Form4            69.95833333        4   
1235    Form 3           77.16666667        3   
1236    Form 3                72.875        4   
1258    Form 3           82.54166667        1   
1333    Form 3                 77.25        2   
1367    Form 2           56.54545455        4   
1445    Form 2           75.66666667        2   
1447    Form 2           75.72727273        1   
1465    Form 2           74.18181818        3   
1523    Form 1           76.18181818        3   
1542    Form 1           75.51515152        4   
1552    Form 1           79.03030303        2   
1555    Form 1           79.63636364        1

クエリを作成するときの賞の列で、私が使用する構築式を使用します。つまり IIf([Rank]=1,1100)、1 位にランク付けされたすべての学生 ID に 1100 の賞を与えますが、フォーム 1 の学生 ID のみが 1100 を取得し、他の学生 ID は異なる賞の値で 1 位にランク付けされます。

4

2 に答える 2

0

これがもう少し複雑になる場合は、VBA で (「モジュール」セクションの任意のコード モジュールで) 関数を記述し、それをクエリで使用できます。

ExpressionName: evaluateAward(ClassID, Rank)

select case関数では、ネストされたステートメントを使用できます。これは、可読性にとってはるかに優れている場合があります。

于 2013-09-06T19:08:40.023 に答える
0

次のようなものが欲しいと思います:

IIF([ClassID] <> "Form 1", IIf([Rank]=1,500), IIf([Rank]=1,1100))

明らかに、何を贈るかを指定しなかったため、賞金額を編集する必要がありますが、ロジックは正しいはずです。

于 2013-09-06T18:50:15.093 に答える