そうです。まさにこれを作りたかった。
今日のページは超大事です。
請求書の仕組みを参考に作成していますが、請求書を入力するときの
1.請求書フォーム ・・・メインフォーム
2.(請求書の中の)明細フォーム ・・・サブフォーム
フォームを作ります。データベースのリレーションがしっかり作成されていればすぐに完成します。すげー
- 「作成」タブから「フォームウィザード」ボタンをクリック
- データーシートビューでいうところの「サブデータシート」部分をフォームで作ります。順番的に 1対多 の1に該当する「テーブル-請求」を選択します。
- 1対多の 1(テーブル-請求)では項目をすべて使用するので全部選択します。中間の「>>」をクリックするとすべての項目を選択できます。
- すべてのフィールドが選択されました。
- 続いて1対多の 多(テーブル-請求明細)を選択します。
- 「テーブル-請求明細」では商品名から下のフィールドを選択します。
商品名に合わせ「>」を押すと商品名だけが選択したフィールドに移ります。
※明細IDは自動で付与されますし、請求IDはメインの「テーブル-請求」が「テーブル-請求明細」を参照するものなので(参照して請求書IDが該当する明細を絞り込む)ここでは選択しません。
- 必要なフィールドが選択できたら「次へ」をクリックします。
- Byの意味は・・・※詳しくはテキストのP238を参照して下さい
ここでは1対多の 1(テーブル-請求)を選択するものだと思って1側を選択します。
- フォームは「表形式」を選択
- 最後にフォーム名をそれぞれ入力して完了
※自分で命名ルール間違えちゃった・・・後ほど修正しました
私はオブジェクトに機能+名称で名前付けしているので
フォーム フォーム-請求書入力
サブフォーム フォーム-請求明細サブフォーム
としなければいけませんでした^^;
- 作成されたフォームが表示されました
- あら・・・明細が商品名しか表示されていない・・・
これはちょっと使いにくいのでデザインビューで修正します - サブフォームが見にくいので下記のように詰めました。
- とりあえずこんなもんかな。
- 新しくデータ入力してみます。
先程触れませんでしたがリレーションが張られているのでデーターシートビューのルックアップ機能に相当するものが「顧客ID」に設定されていました。
- 日付入力もカレンダーが利用できて便利。ウィザードもかなり精巧に設定できるようになったんですねぇ。
- さていよいよサブフォームへのデータ入力です。
1行目は問題なく入力できました。
続いて2行目。
データシートビューのところでもテストしましたが、データーベースに規制を掛けていますのでそれをチェック
単価は0円よりも多い数値しか入力できないようにしてありますのでエラーメッセージがきちんと表示されました。
きちんと機能していますね。 - ということウィザードでほとんど必要な機能は設定されそうです。
実際の開発でも便利そうです。
さて最後にセレクタのまとめ
メインフォームは一番下のレコードと書いてある部分でレコードを移動できます。
ちなみに
▶は次のレコード
▶|は最後のレコード
*は新規レコードの作成
として機能します。これが同じくサブフォームにもあります。なんか昔の話ですがレコードを移動するのに「次へ」のボタンを作ったりしていましたが、これで移動するほうが見た目に随分スッキリすると思います。
あまりごちゃごちゃした画面を作るよりも、最低限の使用方法はユーザーに覚えてもらったほうが全体としては使いやすく、見やすいシステムになるのかもしれません・・・※あくまでも自分の考えです・・・なにせ開発負荷が減ります^^;
【参考テキスト】
下記書籍を参考に独学させて頂いています。
図が多くて分かりやすいです。
できるAccess 2019 Office 2019/Office 365両対応 [ 広野忠敏 ] 価格:2,178円 |