前回動的にフォームを作成し、さらに動的にコントロールを配置しました。
この動的に作成したボタンに、フォームを閉じるイベントプロシージャーを設定します。
Access VBAのプロシージャは、標準モジュール内にPublicで作成しておきます。
■ Access実行画面
動的に作成したフォームです。
ラベルとコマンドボタンを作成し、コマンドボタンをクリックするとフォームを閉じます。
■ Access VBA 実行コード
標準モージュール
Option Compare Database
Option Explicit
Public Function AcClose() As Boolean
DoCmd.Close , , acSaveNo
End Function
Option Compare Database
Option Explicit
実行するフォーム
Private Sub コマンド0_Click()
Dim tForm As Form
Dim tCtrl1 As Control
Dim tCtrl2 As Control
Set tForm = CreateForm()
tForm.DefaultView = 0
tForm.Section(0).Height = 2000
tForm.RecordSelectors = False
tForm.NavigationButtons = False
tForm.DividingLines = False
tForm.Caption = "テストフォーム"
Set tCtrl1 = CreateControl(tForm.Name, acCommandButton, , , "", 5000, 1500, 1500, 800)
tCtrl1.Caption = "閉じる"
'動的に作成したコマンドボタンにイベントプロシージャを設定する
tCtrl1.OnClick = "=AcClose()"
Set tCtrl2 = CreateControl(tForm.Name, acLabel, , , "", 200, 200, 2500, 800)
tCtrl2.Caption = "動的にコントロールを作成し配置"
DoCmd.OpenForm tForm.Name
DoCmd.Restore
DoCmd.MoveSize Right:=1000, Down:=500, Width:=8000, Height:=3500
End Sub