Access

分割フォームをやめてサブフォームを採用する(Access)

2019年10月31日

在庫管理システムを構築していくなかで、マスタデータの修正をするためのフォームを模索していました。

当初はAccessのことをよく知らず、分割フォームのことを知って使い始めました。しかし不満があり、さらに調べた結果としてサブフォームを使うのが使いやすい、となりました。

あわせて読みたい

分割フォームは簡単

【分割フォーム】はテーブルまたはクエリを選択しておき、【作成】タブの【その他のフォーム】、【分割フォーム】をクリックします。

これで、マスタができています。しかし、

分割フォームの気に入らない点

テキストボックスなど、項目によってサイズを変えたいのに、思い通りにいかなくてイライラします。最初はこれでいいか、と諦めていました。

また、分割フォームを閉じる方法として、VBAで「DoCmd.Close」がエラーになって、仕方なくマクロの「ウィンドウを閉じる」を使用していました。フォームを開く・閉じるに1個1個のマクロを作っていたのでは見づらいです。VBAで一括で作りたかったのです。

これらのことは私の知識不足かもしれません。「できるよ」と言う方もいらっしゃるかもしれません。しかしもう、分割フォームは使わないので、その知識も不要になりました。

サブフォームの作り方

  • まっさらのフォームのデザインにて、【デザイン】タブからサブフォームコントロールを選びます。【コントロールウィザードの使用】は有効にしておきましょう。
  • サブフォームウィザードで【既存のテーブルまたはクエリを使用する】のまま【次へ】
  • サブフォームに表示させたいテーブルまたはクエリを選び、「>」で個別フィールドか「>>」ですべてのフィールドを選択して【次へ】(【完了】でも良い)
  • サブフォームの名前を付けて【完了】

  • 下半分にサブフォームを、上半分にテキストボックスをペコペコ配置します。
  • 分割フォームではなく、サブフォームでマスタのフォームができます。次にテキストボックスのコントロールソースの割り当て方を説明します。
  • テキストボックスの【プロパティ】にて【…】をクリックします。
  • サブフォームのフィールドリストを選び、【式の値】で<値>をダブルクリックすると、テキストボックスにサブフォームのフィールドが割り当てられます。【OK】をクリックします。

まとめ

分割フォームと違ってコツコツと退屈な作業になりますが、分割フォームより柔軟性があるフォームが作成できると思います。

サブフォームですと、項目をダブルクリックして別のフォームを開く、なんてこともできます。

あわせて読みたい

いろいろアレンジしてみてください。

-Access
-,

Please disable your adblocker or whitelist this site!

//アドセンスの遅延読み込み