Access サブフォームのサイズをメインフォームに連動させる。


処理概要

学校で使用するアプリを作っています。
生徒マスターを作成しているのですが、Excelファイルから読み込んで登録したいので、メインフォームにコマンドボタンを作成して、データ表示領域は、データシートビューのサブフォームを組み込みました。

このようなテーブルに、Excelのファイルを読み込みます。

画面サイズを変更すると、サブフォームのサイズも連動するように作成しました。

サブフォームは、データシートビュー形式で表示していますので、下記の操作が可能です。

  • 項目幅は自由に変更できます
  • フィルターや並び替えも右クリックメニューで変更することができます。

Excelファイルを読み込む処理は、下記を参照してください。
https://qiita.com/muramoto_jp/items/09f5cc558779766e9bfc

フォームデザイン

コマンドボタンが必要なので、データ部分は、サブフォームで作成しています。

フォームを開く時の初期サイズは、フォーム内にテキストボックスで値を貼り付けています。

初期値を変更する場合は、プロパティシートで値を変更します。
(=は、消さないように!)

プログラムコード(VBA)

フォームの初期サイズは、フォーに貼り付けているオブジェクトから取得します。
取得した値の単位が cm の場合は、567 を乗ずるとフォームの単位に変換できます。

Form_Load
Private Sub Form_Load()
  '--- デザイン設定 ---
  If Nz(Me.sys高さ.Value, 0) > 0 Then Me.InsideHeight = Nz(Me.sys高さ.Value, 0) * 567
  If Nz(Me.sys.Value, 0) > 0 Then Me.InsideWidth = Nz(Me.sys.Value, 0) * 567

End Sub

メインフォームのサイズを変更した場合に、サブフォームサイズを変更しています。
縦のサイズは、コマンドボタンの高さの分、小さくしています。

Form_Resize
Private Sub Form_Resize()
  Dim wHaba As Long
  Dim wTaka As Long

  wHaba = Me.InsideWidth
  wTaka = Me.InsideHeight
  Me.frmSub.Width = wHaba
  Me.frmSub.Height = wTaka - 567 * 0.8
End Sub

サンプルファイル ダウンロード

サンプルファイルは、下記の OneDrive からダウンロードできます。

【サブフォーム連動】
https://1drv.ms/u/s!AiwZpyuHUgQBj7Yp04MO7b83Ujvyag?e=d8O14T

【サンプルファイル一覧】
https://1drv.ms/u/s!AiwZpyuHUgQBj7Yj0iyQ2-RXKtPUtg?e=4D2gyf

AccessとExcelを連携したシステムを公開しています

データベースをAzure SQL にセットして、AccessやExcelのプログラムから データベースを遠隔地間で共有するシステムを公開しています。


http://access-cloud.hatenablog.com/entry/database