<HOME <お願い事項 <Access2002 TOP <Access2000 TOP <サイト内検索 | ||
MS-Access97大魔法陳列棚>らくらく伝票入力 |
【仕 様 な ど】MS-Access97で作成。Windows95でのみ動作確認。
【ダウンロード】←Zip形式
(解凍後、mdb初期状態:およそ146KB)
【主 な 機 能】
サブフォーム形式の伝票入力で、決まったパターンの入力を自動化してみました。
【作 り 方 等】
例えば、こんなフォームがあったとします。[受付テーブル][受付サブテーブル]っていう名前のテーブルを基にした、ちょっとしたサブフォーム形式の入力フォームです。
だいたい、いつもりんごとバナナとみかんは必ず入力するんだよな・・・っていうケース、ありません?
それももうほとんどこの3つだけで、たま〜にぶどうとかメロンを入力することもある・・・。
で、ふつう、Accessみたいなソフトを使い込んでいる人なら、必ず考えていただきたいこと。
「りんごとバナナとみかんが既に入力されている状態にしたい」
できるデキナイはともかくとして、こういうことは必ず考えるようにしましょう。われわれは楽をするためにパソコンを使ってるんです。
とりあえず、フォームを抜きにして、基にしているテーブルを中心に考えましょう。
[受付テーブル]と[受付サブテーブル]が、[伝票番号]というフィールドでリレーションシップの設定をしています。で、上のようなサブフォームになってるわけです。
で、りんごとバナナとみかんの3レコードを、何かのタイミングで[受付サブテーブル]にぶち込んでやればよいのです。
しかし、ただぶち込んではいけません。この2つのテーブルは、[伝票番号]で結びつきます。[受付サブテーブル]にも[伝票番号]の情報を持たないと、フォーム開いたとき、サブフォームとの結びつきがなくて、サブフォームの中が空っぽ状態になってしまいますよね。
タイミングとしては、「伝票番号」がついた後。です。
で、どうやって3レコードぶちこむか・・・。一番手っ取り早いのは追加クエリーだと思います。
まず、ちょっとリレーションシップの道から外れますけど、デフォルト入力したいレコードをエントリーしたテーブルをいっこ作ります。
「番号」というフィールドがミソです。
今回はサブフォーム内に自動的に「明細行」をふってますので、この「番号」が明細行のかわりになります。
後は、商品名と単価。商品名は場合によってはいらないかもしれないですけれど、単価は持っていた方がいいですね。
んで、このテーブルを基に、下のような追加クエリーを作ります。追加先は[受付サブテーブル]。サブフォームが基にしているテーブルですね。
ここで忘れちゃイケナイのが、「伝票番号を付けること」です。上のように伝票番号が入っていないと、[受付テーブル]と結びつかなくなってしまいますよね。
そこで、伝票番号というフィールドをむりやり作って、そこに受付フォームの伝票番号をぶちこみます。
このクエリーが正しく動けば、あとはフォームの中にボタンでも作って、このクエリーが開くマクロを作って動くようにすればよいでしょう。コマンドボタンではなくて、伝票番号がついた後の処理にしてもいいですね。とにかく最初に述べたように、メインとサブのテーブルの「親子リンクフィールド」(今回は伝票番号)が正しく入力されれば、あとはどうにかなるもんです。
サンプルでは、2重処理にならないよう、コマンドボタンを使用不能にしたり使用可能にしたりしています。
伝票番号が自動的に採番されるのが、新規レコード追加時なので、仕入先の入力がされるまで、コマンドボタンは使用不能です。で、一度クリックして3レコード追加されたら、再び使用不能にしています。
実際の処理に合わせて、カスタマイズしてみてください。