dポイントプレゼントキャンペーン実施中!

いつも大変お世話になっております。m(_ _)m
Accessの質問をさせてください。

マスタテーブルを作成し、マスタ情報を元に他テーブルで値を参照したいのですが、マスタのキーになるフィールドの情報が「数値範囲」の場合は、どのように参照できるのでしょうか?

例)
数字が
2~8の場合はA
9~15の場合はB
16~100の場合はC
というようなマスタがあり、他テーブルの情報は
(1)・・・5
(2)・・・12
(3)・・・80
という数値が入っています。

マスタ情報を参照して
(1)・・・5/A
(2)・・・12/B
(3)・・・80/C
というように参照したいのですが、マスタテーブルの作り方やクエリでの算出の仕方を教えてください。

2~8の場合は、2,3,4,5,6,7,8とすべてのパターンを作っておけばよいのでしょうが、もっと良い方法はありませんか?

お手数おかけします。
よろしくお願いします。

A 回答 (3件)

<データ>



ID___数値
1____5
2____12
3____80

<クエリ1>

ID______数値__翻訳結果
1_____5_________A
2____12________B
3____80________C

このクエリをSQLビューで参照すると・・・

SELECT データ.ID, データ.数値, XferValue([数値]) AS 翻訳結果 FROM データ;

Public Function XferValue(ByVal N As Integer) As String
  Dim R As String
  
  Select Case N
    Case 2 To 8
      R = "A"
    Case 9 To 15
      R = "B"
    Case 16 To 100
      R = "C"
    Case Else
  End Select
  XferValue = R
End Function

質問者は、この関数の条件文と戻り値をテーブルにしようとしているのでしょうか?
ならば、XferValue 関数をテーブル参照方式にすればいいでしょう。

しかし、こういうテーブル設計を要求されるケースに未だ遭遇したことがありません。
よっぽど特殊なアプリケーションの開発でもしているのでしょうかね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
「特殊なアプリケーション」というわけではなく(^^;)
基準となるマスタが、「数値が2~8の場合は・・・A」とか数値範囲が指定されていて、困ってしまっています。
100や200くらいの数値なら、すべてのパターンでマスタを作っておこうかと思いましたが、何万もの量なので無理だと思いまして↑上記の質問をさせていただきました。
挑戦してみます。ありがとうございました。

お礼日時:2007/04/26 14:45

私なら・・・って参考意見です



マスタは#1さんと同じ感じで

参照は、
DLookUp("値","マスタ",[数値] & " Between 下限 And 上限")
と、DLookUp関数を使うか?サブクエリにしますが・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
挑戦してみます。
再度不明な点が出ましたら、補足させていただくかもしれません。
よろしくお願いします。

お礼日時:2007/04/26 15:30

下限 上限 値


2   8  A
9 15 B
16 100 C

クエリデザインビューに他のテーブルとマスタテーブルを取り込み
結合はしないで他のテーブルの数字とマスタの値をとりだし

数字の抽出条件欄に

between 下限 and 上限

のようにします
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
やってみます。
再度不明な点が出ましたら、補足させていただくと思いますがよろしくお願いします。

お礼日時:2007/04/26 13:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!