Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


347 / 2272 ツリー ←次へ | 前へ→

【12067】サブフォームの選択されたレコード情報の取得方法 とんとかいも 11/9/3(土) 15:12 質問[未読]
【12068】Re:サブフォームの選択されたレコード情報... hatena 11/9/4(日) 1:23 回答[未読]
【12069】Re:サブフォームの選択されたレコード情報... とんとかいも 11/9/4(日) 21:42 発言[未読]
【12070】Re:サブフォームの選択されたレコード情報... hatena 11/9/4(日) 23:39 回答[未読]

【12067】サブフォームの選択されたレコード情報の...
質問  とんとかいも  - 11/9/3(土) 15:12 -

引用なし
パスワード
   お世話になっております

フォームに設けたサブフォームに、データシートのビューでデータベーステーブルを表示させています。

そのサブフォームに表示されたレコードの一部をマウスのドラッグ操作で選択するわけですが、VBAで選択されたレコード情報を取得したいと考えております。

いろいろ調べて見ましたところ、『SelTop』、『SelHeight』を使用することにより取得できるらしいのですが、試したところSelTopによって選択された先頭の情報は得られるものの、SelHeightによる選択された最後の行の情報が得られません。

お手数をおかけしますが、ご教示よろしくお願いします。

【12068】Re:サブフォームの選択されたレコード情...
回答  hatena  - 11/9/4(日) 1:23 -

引用なし
パスワード
   >いろいろ調べて見ましたところ、『SelTop』、『SelHeight』を使用することにより取得できるらしいのですが、試したところSelTopによって選択された先頭の情報は得られるものの、SelHeightによる選択された最後の行の情報が得られません。

SelTopを仕様して選択された先頭行の情報を得られるのなら、

同じ方法で、SelTop + SelHeight を使用して選択された最終行の情報を得られます。

【12069】Re:サブフォームの選択されたレコード情...
発言  とんとかいも E-MAIL  - 11/9/4(日) 21:42 -

引用なし
パスワード
   hatena様

お世話になっております、
ご回答有難うございます。

それがなかなか上手くいかないようです。
メインフォームに設けたボタンのクリックイベントで、サブフォームに表示された
データシートの選択行を見にいくわけですが、

Seltopについては辛うじてデータが得られ、Seltopそのものだけでも(先頭から)n行目とわかるのですが、SelHeightはどうやってもそのものの情報が0になってしまうのです。
あたかも複数行は選択していませんよ!とAccessから言われているような感じです。(T_T)

▼hatena さん:
>>いろいろ調べて見ましたところ、『SelTop』、『SelHeight』を使用することにより取得できるらしいのですが、試したところSelTopによって選択された先頭の情報は得られるものの、SelHeightによる選択された最後の行の情報が得られません。
>
>SelTopを仕様して選択された先頭行の情報を得られるのなら、
>
>同じ方法で、SelTop + SelHeight を使用して選択された最終行の情報を得られます。

【12070】Re:サブフォームの選択されたレコード情...
回答  hatena  - 11/9/4(日) 23:39 -

引用なし
パスワード
   >メインフォームに設けたボタンのクリックイベントで、サブフォームに表示された
>データシートの選択行を見にいくわけですが、
>
>Seltopについては辛うじてデータが得られ、Seltopそのものだけでも(先頭から)n行目とわかるのですが、SelHeightはどうやってもそのものの情報が0になってしまうのです。
>あたかも複数行は選択していませんよ!とAccessから言われているような感じです。(T_T)

メインフォームのコマンドボタンをクリックすると、フォーカスはメインフォームの
コマンドボタンへフォーカス移動します。その時点では、すでに選択は解除されてし
まってます。ですので、SelHeight は 0 になります。

対処法としては、2つ考えられます。

コマンドボタンの代わりにラベルのクリック時を利用します。
ラベルだとフォーカス移動しませんので、SelHeight を取得できます。
ラベルの立体表示を「浮き出し」にしておくとボタンのように見せることができます。

ラベルをボタンらしく見せるには下記を参考に。
ボタンクリックでテキストボックスに文字入力 その1 - hatena chips
h tp://hatenachips.blog34.fc2.com/blog-entry-7.html


2つめは、
サブフォームの「フォーカス喪失時」で変数に SelHeight を格納しておく
方法です。

Dim SFSelHeight As Long

Private Sub 埋め込み1_Exit(Cancel As Integer)
  SFSelHeight = Me.埋め込み1.Form.SelHeight
End Sub

347 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078191
(SS)C-BOARD v3.8 is Free