ここでは、次のようなインタフェースを想定して、別のフォームからあるフォームのレコード位置を移動させる方法を紹介します。
- 社員マスタ画面を用意します。そのフォームはメイン/サブフォーム形式になっており、メインフォームの名前は"frm社員マスタ"、サブフォームコントロールの名前は"frm社員マスタ_sub"とします。
- 社員マスタ画面のサブフォームでは、"社員コード"フィールドが主キーとなっています。
- 社員マスタ画面のレコードを移動させるための別のフォームを用意します。
- そのフォームには、社員マスタデータのうち、社員コードと氏名などをリストボックスに一覧表示させます。リストボックスの名前は"lst社員一覧"とします。
- そのリストボックスで任意の社員を選択します。
- そして[表示]ボタンをクリックします。
- すると、社員マスタ画面でもそれに合わせてレコード移動が行われ、リストボックスで指定した社員のデータが画面表示されます。

この操作を実現するためには、レコード移動操作用のフォームの[表示]ボタンの"クリック時"イベントプロシージャを次のようにします。
Private Sub cmd表示_Click()
'[表示]ボタンクリック時
Dim rst As Recordset
Dim strCriteria As String
'社員マスタ画面を指定社員コードのレコードに移動
strCriteria = "社員コード = '" & Me!lst社員一覧 & "'"
Set rst = Forms!frm社員マスタ!frm社員マスタ_sub.Form.Recordset
rst.FindFirst strCriteria
End Sub
|