動的にコントロールを作成し配置 : Access




BackHome BackTips Backメニュー

Accessコントロールを動的に作成するには、「CreateControl」を使います。

書式:CreateControl(フォーム名, コントロールタイプ,セクション定数 ,親コントロール , 連結列名, 左位置, 上位置, 幅, 高さ)

■コントロールタイプ
定数 コントロール



acLabel ラベル
acTextBox テキストボックス
acCombBox コンボボックス
acListBox リストボックス
acCommandButton コマンドボタン
acLine 直線
acRectangle 四角形
acImage イメージ
acOptionButton オプションボタン
acOptionGroup オプショングループ
acCheckBox チェックボックス
acToggleButton トグルボタン
acTabCtl タブコントロール
acSubform サブフォーム

■ Access実行画面

作成したフォームです。
ラベルとコマンドボタンを作成しました。
テストコントロールフォーム

■ Access VBA 実行コード

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 = "テスト"
    'ラベルの配置
    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

    MsgBox "閉じます"
    DoCmd.Close , , acSaveNo
    Set tCtrl1 = Nothing
    Set tForm = Nothing

End Sub

BackHome BackTips Backメニュー

Copyright(C) FeedSoft