動的に作成したコントロールにイベントプロシージャを設定 : Access

前回動的にフォームを作成し、さらに動的にコントロールを配置しました。

この動的に作成したボタンに、フォームを閉じるイベントプロシージャーを設定します。
Access VBAのプロシージャは、標準モジュール内にPublicで作成しておきます。



BackHome BackTips Backメニュー

■ 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

BackHome BackTips Backメニュー

Copyright(C) FeedSoft