たま氏の覚え書き

KNIME・AccessVBA・Swift等、学習したことを覚え書き

AccessVBA_フォーム / レポートおよび各コントロールの参照

フォームやレポートを参照する場合の記述例

対象となるフォーム / レポートから参照

オブジェクトの参照:
Me. メソッドorプロパティ
コントロールの参照:
Me . コントロール . メソッドorプロパティ
※「Me.」は省略してもOK

対象となるフォーム / レポート以外から参照

オブジェクトの参照:
Forms("フォーム名") . メソッドorプロパティ
Reports("フォーム名") . メソッドorプロパティ
コントロールの参照:
Forms("フォーム名") . コントロール名 . メソッドorプロパティ
Reports("フォーム名") . コントロール名 . メソッドorプロパティ
※フォーム・サポート名にスペースが含まれる場合には必ず「""」「[]」のどちらかで囲む

記述例

▼対象となるフォームから各ラベルの表示を一括変更▼

Sub test_Form()
 Dim formObj As Object
  Me.lbl1.Caption = "あああ" 
  Me.lbl2.Caption = "あああ" 
  Me.lbl3.Caption = "あああ" 

  For Each formObj In Me.Controls
   If formObj.ControlType = acLabel Then
    formObj.Caption = "いいい"
   End If
  Next
End Sub

標準モジュールからフォームを参照し各ラベルの表示を一括変更▼

Sub test_Form()
 Dim formObj As Object
  Forms("フォーム1").lbl1.Caption = "あああ" 
  Forms("フォーム1").lbl2.Caption = "あああ" 
  Forms("フォーム1").lbl3.Caption = "あああ" 

  For Each formObj In Forms("フォーム1").Controls
   If formObj.ControlType = acLabel Then 'コントロールの指定※次項参照
    formObj.Caption = "いいい"
   End If
  Next
End Sub

【補足】プロパティの指定

記述例で使用しているコントロールの指定(→ControlType = acLabel)ついては、以下の記事の
「TypeName関数及びControlTypeプロパティの値一覧」項を参照
▼よくわかる解説▼
www.accessdbstudy.net