- ベストアンサー
Accessで商品管理をしています
商品は2種類でそれぞれサイズが10ずつあります。 販売先は6件ほどしかありませんが、販売先ごとに販売単価が違うので販売単価テーブルが膨大になりコンボボックスの便利さがあまり感じられません。なにかよい方法はありますか?私は超初心者ですので伝わりにくいかもわかりませんがよろしくおねがいします。 Access2000 XP
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
コンボボックスを見直しませんか? [販売先]の選択用 [商品]の選択用 [サイズ]の選択用 として作成して各自入力で [単価]=Dlookup("単価","販売単価テーブル","[販売先]='" & [販売先] & "' And [商品]='" & [商品] & "' And [サイズ]='" & [サイズ] &"'") としてテーブルから参照する。 上記の式は[販売先][商品][サイズ]が文字型とした場合です。
その他の回答 (3)
- nakano56
- ベストアンサー率50% (11/22)
通りがかりの主婦です。 (^_^)/ 単価は必ずコンボボックスじゃなきゃダメ!なのでお困りなのでしょうか? >会社指定-商品指定-(アクセスで)会社と商品で決まる単価表を引く >-単価決定の仕組みにすればよいです。 >コンボボックスを見直しませんか? と、皆様がおっしゃっているとおりだと思います。 ちょっとここは、基本設計者にたてついて、 「単価ですけど、コンボボックスやめてテキストボックスにします!」と vivanonさんが宣言した設定で考えてみました。 >単価入力の際、単価テーブル >(販売先6*商品2*サイズ10=120データ)から選ぶようになっています。 上記↑のテーブル構造を踏まえ、テーブルとフォームを考えて見ます。 画面はNo.2さんの提案のように、画面で「販売先」と「商品」を、また、 No.3さんのDlookupに登場する「サイズ」の計3項目を指定するようにし、 単価が自動的に表示される仕組みです。 -------------------------------------------------- 【テーブル】 -------------------------------------------------- [t_販売先マスタ] 販売先コード(key) 販売先日本語 [t_商品マスタ] 商品コード(key) 商品日本語 [t_単価テーブル]- 商品コード(key) 販売先コード(key) サイズ(key) サイズ単位(key)※ 単価 ※ケーブル販売など、サイズが5でも、「cm」か「m」か「箱」 かによって単価が異なる場合のみ必要かなーと思い・・。 不要ならばご放念ください。 -------------------------------------------------- 【form(画面)項目】 -------------------------------------------------- f_販売先コード[コンボボックス (販売先マスタ_販売先コード)] f_販売先日本語[テキストボックス(販売先マスタ_販売先日本語)] f_商品コード [コンボボックス (商品マスタ_商品コード)] f_商品日本語 [テキストボックス(商品マスタ_商品日本語)] f_サイズ [コンボボックス (単価テーブル_サイズ)] f_サイズ単位 [コンボボックス (単価テーブル_サイズ単位)] f_単価 [テキストボックス(単価テーブル_単価)] -------------------------------------------------- こんな具合に設定して、「form.f_単価」のプロパティを No.3さんが回答しているDlookupにしてみたらいかがでしょうか。 =Dlookup("単価","t_単価テーブル", "[販売先コード]='" & [f_販売先コード] & "' And [商品コード] ='" & [f_商品コード] & "' And [サイズ] ='" & [f_サイズ] &"' And [サイズ単位] ='" & [f_サイズ単位] &"'") Accessもってないので構文エラーになったらごめんなさい。 あってるかなー(^_^;) 本職の方、フォロー願います。
補足
ありがとうございます。 とっても詳しくありがとうございます。 Accessもってなくて通りががりの主婦でここまでくわしいなんて・・。同じ主婦として尊敬!!です。 テーブルを3個つくってフォームで回答いただいたとおりに販売先等を指定すれば単価は勝手に表示されるのでしょうか?コードはやはり必要なのでしょうか? お答えを理解するのにじかんがかかりそうです。
- imogasi
- ベストアンサー率27% (4737/17069)
>超初心者ですので伝わりにくいかもわかりませんが いえいえ良く判りますよ。 誰かに教わった、または本に書いてあった方式で 会社指定->当会社用の販売単価表を(コンボで)表示 -多い中から選択-単価決定 と成っているのだと思います。 これを 会社指定-商品指定-(アクセスで)会社と商品で決まる単価表を引く-単価決定 の仕組みにすればよいです。 会社指定も少ないなら全数をコンボに表示 多いときには、社名50音順や地域別指定などを一旦行い、コンボに表示する数を減らす。 商品指定も商名50音順や手許コード表を見て入力や 分類(各会社業界で何かあるでしょう)項目を一旦指定して、候補表示を減らす工夫がされます。 単価表は A商品X社23(円) A商品Y社22(円) A商品z社19(円) ・・・ B商品X社53(円) B商品Y社42(円) B商品z社49(円) とするのと A商品 B商品 C商品 X社 23 53 123 Y社 22 42 118 Z社 19 49 115 が考えられます。 もっと困ったのでは X社はA商品1-100個までは23円、200-500個は18円、Y社あてはまた違う、なんてのも業界ではありそう。 これらは基本的にクエリ(背後にSQLの仕組み)を使って実現されます。 本当はこの分野の本格的なものは、プロが受注して、(アクセスではないであろう)、データベース言語で、プログラム類を作成していると思います。自作するならやはりそれなりの勉強が必要となりますが、質問の範囲なら、アクセスでの答えがOKWEBに上がるでしょう。
補足
お答えありがとうございます。 単価入力の際、単価テーブル(販売先6*商品2*サイズ10=120データ)から選ぶようになっています。 >会社指定-商品指定-(アクセスで)会社と商品で決まる単価表を引く-単価決定 の仕組みにすればよいです。 その仕組みを教えていただけますか? ロジックがわからないのです。 会社と商品で単価表を引く、ようにするにはどうすれば よいのですか? 今の私には難しいことになってしまうのでしょうか?
- keikan
- ベストアンサー率42% (75/176)
コンボボックスの便利なところといえば、 この販売単価テーブルができあがって、次の業務にこのテーブルを利用するときに選択するのに便利になるのではないでしょうか。 ベースとなるテーブルのデータ入力に際して、コンボボックスが便利になるのは、同じ値を繰り返し入力したり、選択肢一覧から選んだりになるのですが、 この場合、販売単価テーブルの販売先コード6件と、商品2種類、サイズ10種類(2商品とも同じサイズの場合)をコンボボックスして、単価はテキストがいいと思います。 また、このレベルのように事前にデータが分かり切ってる場合はテーブルの登録に際しては、Execlでオートフィルなどを用いて単価以外の部分をコピー等して一覧を作成し、できたものをAccessでインポートすると手間が省けます。
補足
ありがとうございます。 超初心者なものでお答えを理解するのに時間を要してしまいます・・・。 単価は手で入力するということでしょうか? たとえば、請求書をつくるとき、販売先名を最初に入力すると単価はその販売先の単価がコンボボックスで選べる、というようにならないか、とおもったのですが。 最後のExcelうんぬんはよくわかりません。勉強してから活用させていただきます。
お礼
ありがとうございます!! その通りに入力したらできました。 便利な関数があるのですね。 この質問をしたことがはずかしいです。 もっと勉強します!!