【ACCESS独学日記】Study027 日付:2021年4月19日/メインフォームとサブフォームを作る【超重要】 ※自分の為の振返りノート(備忘録程度)

投稿日: 作成者: ussy
0 0
Read Time:42 Second

そうです。まさにこれを作りたかった。
今日のページは超大事です。
請求書の仕組みを参考に作成していますが、請求書を入力するときの
1.請求書フォーム ・・・メインフォーム
2.(請求書の中の)明細フォーム ・・・サブフォーム
フォームを作ります。データベースのリレーションがしっかり作成されていればすぐに完成します。すげー

  1. 「作成」タブから「フォームウィザード」ボタンをクリック
  2. データーシートビューでいうところの「サブデータシート」部分をフォームで作ります。順番的に 1対多 の1に該当する「テーブル-請求」を選択します。
  3. 1対多の 1(テーブル-請求)では項目をすべて使用するので全部選択します。中間の「>>」をクリックするとすべての項目を選択できます。
  4. すべてのフィールドが選択されました。
  5. 続いて1対多の 多(テーブル-請求明細)を選択します。
  6. 「テーブル-請求明細」では商品名から下のフィールドを選択します。
    商品名に合わせ「>」を押すと商品名だけが選択したフィールドに移ります。
    ※明細IDは自動で付与されますし、請求IDはメインの「テーブル-請求」が「テーブル-請求明細」を参照するものなので(参照して請求書IDが該当する明細を絞り込む)ここでは選択しません。
  7. 必要なフィールドが選択できたら「次へ」をクリックします。
  8. Byの意味は・・・※詳しくはテキストのP238を参照して下さい
    ここでは1対多の 1(テーブル-請求)を選択するものだと思って1側を選択します。
  9. フォームは「表形式」を選択
  10. 最後にフォーム名をそれぞれ入力して完了
    ※自分で命名ルール間違えちゃった・・・後ほど修正しました
    私はオブジェクトに機能+名称で名前付けしているので
    フォーム フォーム-請求書入力
    サブフォーム フォーム-請求明細サブフォーム
    としなければいけませんでした^^;
  11. 作成されたフォームが表示されました
  12. あら・・・明細が商品名しか表示されていない・・・
    これはちょっと使いにくいのでデザインビューで修正します
  13. サブフォームが見にくいので下記のように詰めました。
  14. とりあえずこんなもんかな。
  15. 新しくデータ入力してみます。
    先程触れませんでしたがリレーションが張られているのでデーターシートビューのルックアップ機能に相当するものが「顧客ID」に設定されていました。
  16. 日付入力もカレンダーが利用できて便利。ウィザードもかなり精巧に設定できるようになったんですねぇ。
  17. さていよいよサブフォームへのデータ入力です。
    1行目は問題なく入力できました。
    続いて2行目。
    データシートビューのところでもテストしましたが、データーベースに規制を掛けていますのでそれをチェック
    単価は0円よりも多い数値しか入力できないようにしてありますのでエラーメッセージがきちんと表示されました。
    きちんと機能していますね。
  18. ということウィザードでほとんど必要な機能は設定されそうです。
    実際の開発でも便利そうです。
    さて最後にセレクタのまとめ
    メインフォームは一番下のレコードと書いてある部分でレコードを移動できます。
    ちなみに
    ▶は次のレコード
    ▶|は最後のレコード
    *は新規レコードの作成
    として機能します。これが同じくサブフォームにもあります。

    なんか昔の話ですがレコードを移動するのに「次へ」のボタンを作ったりしていましたが、これで移動するほうが見た目に随分スッキリすると思います。

    あまりごちゃごちゃした画面を作るよりも、最低限の使用方法はユーザーに覚えてもらったほうが全体としては使いやすく、見やすいシステムになるのかもしれません・・・※あくまでも自分の考えです・・・なにせ開発負荷が減ります^^;

【参考テキスト】
下記書籍を参考に独学させて頂いています。
図が多くて分かりやすいです。

できるAccess 2019 Office 2019/Office 365両対応 [ 広野忠敏 ]

価格:2,178円
(2021/4/19 14:25時点)
感想(1件)

About Post Author

ussy

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %