• 締切済み

フォームで指定したフィールドのレコード抽出したい

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のフィールドから… などと考えたんですが、フィールドを指定して、特定のフィールドから値を抽出する方法がわかりません。 説明がわかりづらいかもしれませんが、どなたか教えてください。

みんなの回答

回答No.2

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

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

長い間Accessを使っていないので、一般的なリレーションルデータベースとして回答します。 リレーションやlookupで値を取ってくる時には、特定の1つのフィールドからしか取って来れません。 やり方としては 単価テーブルを 商品コード、出荷分類、業種、単価の4つのフィールドを作り、一つの商品に付いて出荷分類×業種=35個のレコードを作ります。 例えば商品が10種類だとレコードが350になります。 lookupするのは、商品コード AND 出荷分類 AND 業種で単価をとってきます。 単価を入力するときには、これでは入力しにくければ、質問欄にあるような39種類のフィールドをもつレコードをつくって入力してもよいです。単価は単価テーブルからリレーションでとってきます。

関連するQ&A