0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-11-09

処理概要

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

image.png

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

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

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

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

image.png

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

フォームデザイン

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

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

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

プログラムコード(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

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

image.png

サンプルファイルは、下記の 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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?