#398 | 2つのフォームをレコード移動でシンクロさせる方法 | フォーム、VBA | |
Accessウィンドウ上に開いている2つのフォームの表示内容(表示するレコード)を、フォームのレコード移動によってシンクロさせる方法です。ある一方のフォームのレコードが移動したとき(そのフォームが開いたときも含まれます)、それに合わせて、もう一方のフォームも同じキーを持ったレコードを検索してレコード移動させます。この方法では、シンクロされる側のフォームに含まれるレコードがフィルタによって抽出されるわけではないので、シンクロ後も自由に他のレコードに移動できるのが特徴です。 次の例では、下記のコードをメイン側フォームのイベントプロシージャとして記述することによって、「frm受注データ詳細」というフォームをシンクロさせます。ここでは、「受注コード」フィールドが2つのフォームを連動させるためのキーとなっています。 Private Sub Form_Current() 'フォームのレコード移動時 Dim strCreteria As String 'カレントレコードと同じ「受注コード」を検索する文字列を組み立て strCreteria = "受注コード = " & Me!受注コード 'frm受注データ詳細フォームのレコードを検索して移動 Forms!frm受注データ詳細.Form.Recordset.FindFirst strCreteria End Sub 実行例: ■受注コードが「1005」のレコードへ移動したとき ■受注コードが「2065」のレコードへ移動したとき ※このプログラムでは、「frm受注データ詳細」フォームが実際に開いているかどうかまで確認していません。もし開いていない場合にはエラーとなりますので、その場合は別途対処するなど、注意してください。 |
|||
|
Copyright © T'sWare All rights reserved |