• ベストアンサー

ACCESSの使い方を教えてください

[履歴]テーブル ●製品コード(char 9) ●入出荷番号(int) 日付(date) 得意先コード(char 6) 納入先コード(cahr 4) 入荷(BOOL) 入出荷量(double) [製品]テーブル ●製品コード(cahr 9) 製品名(char 20) [得意先]テーブル ●得意先コード(cahr 6) 得意先名(cahr 40) [納入先]テーブル ●得意先コード(cahr 4) 得意先名(cahr 40) の4つのテーブルがあります。(●印はキー) 製品コードを入れてEnter(ボタンクリックでもOK)すると その製品の履歴が出てくるようにしたいです。 必要に応じて当日の履歴、過去データの修正もします。 履歴.入荷 = TRUE(YES)のとき入荷として扱い、入出荷量はプラスとして扱います。 履歴.入荷 = FALSE(NO)のとき出荷として扱います、入出荷量はマイナスとして扱います。 最後の行にその製品コードに対する累計入出庫番号順に入出荷量を計算して合計を出します。 ★これをACCESSのフォームで作るにはどうしたらよいのでしょうか? 1 テキストボックスに製品コードを入れてクエリを発行し結果を出す方法がわかりません。   SQL: Select * from 履歴 where 製品コード=テキストボックス1 order by 日付   ですよね?? 2 マクロで入出庫番号順に入荷を判断しカウントしていく方法がわかりません。   プログラムならかけますがACCESSでやる方法が不明です。    ★印刷用にレポートも作ります。(対象製品の履歴)  この場合どこに製品コードを入力するところを作ればよいのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>テキストボックスに製品コードを入れてクエリを発行し結果を出す方法 SELECT 履歴.* FROM 履歴 WHERE (((履歴.製品コード)=[Forms]![フォーム名]![テキスト1])) ORDER BY 履歴.入出荷番号; >履歴.入荷 = TRUEのとき入荷、入出荷量はプラス。 >FALSEのとき出荷入出荷量はマイナス。 >最後の行に入出荷量を計算して合計を出します。 >マクロで入出庫番号順に入荷を判断しカウントしていく方法がわかりません 特に他処理が入らなければマクロなど必要ありません。 フォーム上もしくはレコードソースのステートメント上で入荷フィールドの値によって+-してしまえば良いので。 例えば帳票フォームでフォームを作ります。 フォームにテキストボックスを作り入荷のコントロール(フォームに入荷のコントロールがあるとして)の値を元に入出荷量を+-するようにします。そのテキストボックスを合計すれば簡単です。 例えばそのテキストボックスをText1としてコントロールソースに =IIf([入荷]=True,[入出荷量],-[入出荷量]) とすればTrueは入出荷量を+、Falseは入出荷量を-で表示します。 フォームのフッタに作ったText1を合計するテキストボックスを配置しそのテキストボックスのコントロールソースに =Sum([Text1]) とすれば合計を表示できます。 >印刷用にレポートも作ります。この場合どこに製品コードを入力するところを作ればよいのですか 製品コードで履歴を抽出するフォームをそのまま使って =[Forms]![フォーム名]![テキスト1] として抽出すれば良いのでは。

5S6
質問者

お礼

なんとかできました。ありがとうございます

その他の回答 (1)

  • process9
  • ベストアンサー率29% (81/271)
回答No.1

>★これをACCESSのフォームで作るにはどうしたらよいのでしょうか? >1 テキストボックスに製品コードを入れてクエリを発行し結果を出す方法がわかりません。 >  SQL: Select * from 履歴 where 製品コード=テキストボックス1 order by 日付 >  ですよね?? 入出庫番号順であれば、 Select * from 履歴 where 製品コード=テキストボックス1 order by 入出荷番号 ではないでしょうか。 >2 マクロで入出庫番号順に入荷を判断しカウントしていく方法がわかりません。 >  プログラムならかけますがACCESSでやる方法が不明です。  プログラムを書けるのであれば、フォームの中で  1関数(VBA)として作成すればよろしいのではないでしょうか。 >★印刷用にレポートも作ります。(対象製品の履歴) > この場合どこに製品コードを入力するところを作ればよいのですか? 上記作成フォーム(検索画面とでもしましょう)で、 印刷ボタンを作成すれば、新たに画面を作る必要はないのではないでしょうか。 ちなみに、 フォームの作り方、レポートの作り方、VBAのテクニック などのサイトをまとめたリンク集があるので そちらで具体的な作り方を学びながら、やればよろしいのではないでしょうか。以下に参考リンク集のURLを載せときますね。 参考 http://www.accessclub.jp/linksite/index.html

5S6
質問者

お礼

URLありがとうございます

関連するQ&A