サンプルでは、サブフォームの使用をボタンがクリックされないかぎりは
使用できないように設定しています。そして、ボタンを押した時のみに、
サブフォームの使用ができるようにしています。
サブフォームは、関連付けられたテーブルのデータを表示する
ことができますが、そのレコードに対して変更や削除も可能なので、
必要な時のみ、サブフォームを利用したい、といった時には有効な方法の
1つです。
● 準備 ●
フォームには、テキストボックスとコマンドボタン、
そしてソースオブジェクトでテーブルを指定してあるサブフォームを
配置します。
まずは、フォームが表示されアクティブになった時に発生するイベント
「Activate」で、サブフォームの使用を不可能にします。
● サンプル1 ●
Private Sub Form_Activate()
Me.Repaint
Me!サブフォーム1.Enabled = False
End Sub
Repaintメソッドは、指定されたフォームに対して、画面の更新操作がある
場合は再描画します。
次に、コマンドボタンがクリックされた時に発生するイベント「Click」で、
サブフォームを使用可能にしてフォーカスを移動させます。
● サンプル2 ●
Private Sub コマンド0_Click()
Me!サブフォーム1.Enabled = True
Me!サブフォーム1.SetFocus
End Sub
アクティブになっているフォーム上のコントロールにフォーカスを移動させるには、
SetFocusメソッドを使います。サブフォームもコントロールの1つです。
次に、サブフォームから他のコントロールへフォーカスが移動する時に発生する
イベント「Exit」で、フォーカスをテキストボックスに移動させてから
サブフォームの使用を不可能にします。
● サンプル3 ●
Private Sub サブフォーム1_Exit(Cancel As Integer)
Me!テキスト1.SetFocus
Me.Repaint
Me!サブフォーム1.Enabled = False
End Sub
以上のイベントプロシージャを作成すると、ボタンがクリックされた時のみ、
サブフォームの使用が可能になります。
|