#282 | 範囲選択されたレコード内容を取得するには? | フォーム、VBA | |
表形式またはデータシート形式のフォームにおいては、レコードセレクタ上のドラッグによって複数レコードの範囲選択が可能です。また、"SelTop"プロパティや"SelHeight"プロパティによって、範囲選択されているレコード番号を取得することができます(#244参照)。 さらに、それらのプロパティ値を取得して展開することによって、範囲選択された各レコードの内容を順番に取得することができます。 次の例では、レコードを範囲選択した状態でF4キーを押すことによって、それらのレコードの内容(受注コードと出荷先名)をイミディエイトウィンドウに表示します。 ※コマンドボタンのクリックなどのタイミングでこのような処理を行なうことはできません。クリックと同時にレコードの複数選択が解除されてしまうためです。 ※"KeyDown"イベントを発生させるためには、フォームの"キーボードイベント取得"プロパティを"はい"に設定しておく必要があります。 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'キークリック時イベント Dim rst As Recordset Dim iintloop As Integer If KeyCode = vbKeyF4 Then 'レコードセットの複製を生成 Set rst = Me.RecordsetClone With rst 'いったん先頭レコードへ移動 .MoveFirst '選択範囲の先頭レコードへ移動 .Move Me.SelTop - 1 '選択されているレコード内容を取得するループ For iintloop = 1 To Me.SelHeight Debug.Print !受注コード, !出荷先名 .MoveNext Next iintloop .Close End With End If End Sub |
|||
|
Copyright © T'sWare All rights reserved |