- ベストアンサー
Access2000でのINSERT文の作成マクロについて
- Access2000での環境下、2つのテーブルを参照し請求データを請求テーブルに挿入するためのINSERT文の作成マクロについて相談です。
- 会員テーブルと年会費テーブルを結合した請求データを請求テーブルに挿入したいと考えています。
- Access2000での開発経験が皆無のため、マクロでの作成と実行方法がわかりません。アドバイスをお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
1.クエリを作る。 クエリ→新規作成を実行し、テーブル追加画面が出たら閉じる。 次にSQLビューを開いて、以下のSQLを記述する。 INSERT INTO 請求TBL(会員ID,会費区分ID,請求金額,請求日) SELECT 会員TBL.ID,会員TBL.会員区分ID,会費TBL.年会費,Date() FROM 会員TBL INNER JOIN 会費TBL ON 会員TBL.会費区分=会費TBL.会費区分ID これを「請求クエリ」という名前で保存する。 2.マクロを作る。 マクロ→新規作成を実行する。以下のステップを記録する。 (1)メッセージの設定 メッセージの表示:いいえ (2)クエリを開く クエリ名:請求クエリ ★他は規定値でよい。 (3)メッセージの設定 メッセージの表示:はい これを「請求マクロ」という名前で保存する。 3.フォームを作る。 コマンドボタンを配置する。ボタンのプロパティ「クリック時」に マクロ名の「請求マクロ」を記述する。 以上で準備完了です。後はフォームを開いて、ボタンをクリックすれば マクロが稼動して請求データが出来ます。 フォームでなくても「請求マクロ」を実行すれば、もっと極端には 「請求クエリ」を開くだけで請求データが挿入されます。 「マクロを使って云々」とありましたので、その線に沿ってみました。
その他の回答 (2)
若干DBの設計を変えた方がよいのでは? と云うか、既にあるかもしれませんが、以下のようなテーブルを用意します 会費納付状況(テーブル) 会費納付ID 会員区分ID 納付金額 年度(あるいは納付年月日) これと「会員TBL」と「会費TBL」を組み合わせ、当該年度の「納付金額」がゼロまたはnullを対象にして選択クエリーを作れば、何度でも対象者を絞り込んで請求書が発行できます。「請求TBL」を用意しなくても良さそうです。
- nda23
- ベストアンサー率54% (777/1415)
疑問1 会員がどの会費区分になるのかを示す項目がない。 会員TBLの会員区分IDと会費TBLの会費区分IDは同じ意味のコード系か? 疑問2 請求金額が納付されたかどうかを示す項目がない。 これではプログラム実行の度に全員に請求データが挿入される。 少なくとも請求TBLには会員のID、会費年度、納金有無 という 項目が必要と考えられるが・・・ 疑問3 請求TBLへの挿入でエラーにならないようにするためには重複不可の キー項目を知らなければならないが、それが示されていない。
補足
気ばかりが焦り、助言をいただこうとしておきながら現状の説明さえ出来ていませんでした。 回答1 会員TBLには全会員に会費区分を持っており、この内容は会費TBLの会費区分IDとなっています。 尚、会費TBLの主キーは会費区分IDです。 回答2・回答3 請求テーブルへは年に1度任意のタイミングで全会員分の請求レコードを作成します。処理実行の度に全会員分の請求レコードを作成したいのです。 今はこの全会員分の請求レコードの作成過程で止まってしまっています。 請求TBLには、請求ID(主キー:オートナンバー)、会員ID、会費区分ID、請求金額、請求日(レコード作成日)をフィールドとして保持しています。 この請求に対しての入金の有無は別テーブルで管理しようと考えています。
お礼
申し訳御座いません。補足の内容は私のクエリ記述ミスによるものでした。ご教示いただきました通りの記述で問題なく実行出来ました。 大変参考となりました。有難う御座いました。
補足
大変解りやすく作成過程を示していただき有難う御座います。 ご教示いただいた方法で追加クエリを作成しました。 しかし、実行時に会員TBLのIDのパラメータを求められてしまいます。 パラメータを渡さずに全会員分の請求データを作成する事は不可能なのでしょうか。 度重なるご質問で申し訳御座いませんが、宜しくお願い致します。