<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 MS-Access97大魔法陳列棚>らくらく伝票入力



【仕 様 な ど】MS-Access97で作成。Windows95でのみ動作確認。

【ダウンロード】←Zip形式
            (解凍後、mdb初期状態:およそ146KB)

【主 な 機 能】

サブフォーム形式の伝票入力で、決まったパターンの入力を自動化してみました。


【作 り 方 等】

例えば、こんなフォームがあったとします。[受付テーブル][受付サブテーブル]っていう名前のテーブルを基にした、ちょっとしたサブフォーム形式の入力フォームです。

だいたい、いつもりんごとバナナとみかんは必ず入力するんだよな・・・っていうケース、ありません?
それももうほとんどこの3つだけで、たま〜にぶどうとかメロンを入力することもある・・・。

で、ふつう、Accessみたいなソフトを使い込んでいる人なら、必ず考えていただきたいこと。

「りんごとバナナとみかんが既に入力されている状態にしたい」

できるデキナイはともかくとして、こういうことは必ず考えるようにしましょう。われわれは楽をするためにパソコンを使ってるんです。


とりあえず、フォームを抜きにして、基にしているテーブルを中心に考えましょう。

[受付テーブル]と[受付サブテーブル]が、[伝票番号]というフィールドでリレーションシップの設定をしています。で、上のようなサブフォームになってるわけです。

で、りんごとバナナとみかんの3レコードを、何かのタイミングで[受付サブテーブル]にぶち込んでやればよいのです。

しかし、ただぶち込んではいけません。この2つのテーブルは、[伝票番号]で結びつきます。[受付サブテーブル]にも[伝票番号]の情報を持たないと、フォーム開いたとき、サブフォームとの結びつきがなくて、サブフォームの中が空っぽ状態になってしまいますよね。

タイミングとしては、「伝票番号」がついた後。です。


で、どうやって3レコードぶちこむか・・・。一番手っ取り早いのは追加クエリーだと思います。

まず、ちょっとリレーションシップの道から外れますけど、デフォルト入力したいレコードをエントリーしたテーブルをいっこ作ります。
「番号」というフィールドがミソです。
今回はサブフォーム内に自動的に「明細行」をふってますので、この「番号」が明細行のかわりになります。


後は、商品名と単価。商品名は場合によってはいらないかもしれないですけれど、単価は持っていた方がいいですね。

んで、このテーブルを基に、下のような追加クエリーを作ります。追加先は[受付サブテーブル]。サブフォームが基にしているテーブルですね。

ここで忘れちゃイケナイのが、「伝票番号を付けること」です。上のように伝票番号が入っていないと、[受付テーブル]と結びつかなくなってしまいますよね。

そこで、伝票番号というフィールドをむりやり作って、そこに受付フォームの伝票番号をぶちこみます。


このクエリーが正しく動けば、あとはフォームの中にボタンでも作って、このクエリーが開くマクロを作って動くようにすればよいでしょう。コマンドボタンではなくて、伝票番号がついた後の処理にしてもいいですね。とにかく最初に述べたように、メインとサブのテーブルの「親子リンクフィールド」(今回は伝票番号)が正しく入力されれば、あとはどうにかなるもんです。

サンプルでは、2重処理にならないよう、コマンドボタンを使用不能にしたり使用可能にしたりしています。

伝票番号が自動的に採番されるのが、新規レコード追加時なので、仕入先の入力がされるまで、コマンドボタンは使用不能です。で、一度クリックして3レコード追加されたら、再び使用不能にしています。

実際の処理に合わせて、カスタマイズしてみてください。