ボタンがクリックされたらサブフォームの使用を許可してフォーカスを移動する
 サンプルでは、サブフォームの使用をボタンがクリックされないかぎりは
使用できないように設定しています。そして、ボタンを押した時のみに、
サブフォームの使用ができるようにしています。

 サブフォームは、関連付けられたテーブルのデータを表示する
ことができますが、そのレコードに対して変更や削除も可能なので、
必要な時のみ、サブフォームを利用したい、といった時には有効な方法の
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

 以上のイベントプロシージャを作成すると、ボタンがクリックされた時のみ、
サブフォームの使用が可能になります。

Access97/2000



戻る


Excel Word Access VBA! モーグ