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