プロが教えるわが家の防犯対策術!

Access2010使用です。
売上伝票を作るのに、出荷分類7種類(工場渡し・配達・遠距離配達…)、業種別5種類(同業者、職人、現金…)と分類分けされていて、
ひとつの商品の単価で6×5=35種類の価格設定があります。

テーブルの構成はひとつのレコードに対して、
●商品コード
●商品名
●分類別単価コード
●分類別単価
●工場渡し・職人(11)
●工場渡し・現金(12)
●工場渡し・建材店(13)
●工場渡し・同業者(14)
●工場渡し・工務店(15)
●配達・職人(21)
●配達・現金(22)
●配達・建材店(23)
●配達・同業者(24)
●配達・工務店(25)
●遠配達・職人(31)
●遠配達・現金(32)
...etc
とあって全部で、39種類のフィールドがあります。

売上伝票というフォームがあって
得意先マスタの方で業種は指定しているので得意先を選ぶと業種([Forms]![F売上メイン]![業種])は自動で指定されますが、
出荷分類([Forms]![F売上メイン]![分類コード])が都度、工場渡しだったり配達だったり異なるのでその都度選択します。

例えば…
出荷パターンが工場渡し・同業者(14)
この場合、「工場単価4」のフィールドから指定商品のレコードにある単価を抽出したい

出荷パターンが配達・建材店(23)
この場合、「配達単価3」のフィールドから指定商品のレコードにある単価を抽出したい

業種別IDと出荷分類IDを組み合わせて、()内の2桁の番号(出荷パターン)を作っています。

Dlookupでも試みたんですがうまく動作せず、
IIFを用いて出荷パターンが「14」の場合は工場単価4のフィールドから…
などと考えたんですが、フィールドを指定して、特定のフィールドから値を抽出する方法がわかりません。

説明がわかりづらいかもしれませんが、どなたか教えてください。

A 回答 (2件)

回答が付かないようなので・・・・


フィールド数が多いのが難点ですが、
パラメータクエリーでごりごり力尽くでやるのは駄目なんでしょうか?
ただこれだけフィールド数が多いと大変ですけど。
検討済みであればごめんなさい。
お邪魔しました。
    • good
    • 0

長い間Accessを使っていないので、一般的なリレーションルデータベースとして回答します。



リレーションやlookupで値を取ってくる時には、特定の1つのフィールドからしか取って来れません。
やり方としては
単価テーブルを
商品コード、出荷分類、業種、単価の4つのフィールドを作り、一つの商品に付いて出荷分類×業種=35個のレコードを作ります。
例えば商品が10種類だとレコードが350になります。

lookupするのは、商品コード AND 出荷分類 AND 業種で単価をとってきます。

単価を入力するときには、これでは入力しにくければ、質問欄にあるような39種類のフィールドをもつレコードをつくって入力してもよいです。単価は単価テーブルからリレーションでとってきます。
    • good
    • 0

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