プロが教えるわが家の防犯対策術!

ラベルをクリックしてレコードを移動したいのですが。
Access2000で帳票フォームを作成しました。選択したレコード(たとえば上から5番目のレコード)のテキスト部分をクリックした場合はそのレコードがカレントレコードになりますがラベル部分をクリックしてもレコードが移動しません(カレントレコードになりません)。
ラベルをクリックしてレコードを移動させる方法を教えて頂きたくよろしくお願いいたします。

A 回答 (6件)

既に回答されていますが、


レコードの移動は、フォーカスが移動することによって起きるものと思っています。
(レコードセレクタは例外?)

テキストボックスなどにくっついているラベルをクリックすることで、
くっついている元にフォーカスが移動します。
それをトリガとして、レコードの移動が起きます(と思っています)

ラベル単独では、クリックしてもフォーカスの移動が起きないので、
レコードの移動もありません。

現状のフォームへの、簡単な修正方法(私が考えれる範囲で)は、
クリックすることによってフォーカス移動が起きるコントロール
(コマンドボタン)をラベルの上に配置します。

手順)

・コマンドボタンをラベルの大きさで作ります。
(今回はフォーカスを移動させるだけなので、名前は何でもいいと思います)
(イベント等を設定するのなら、わかりやすい名前に変更した方がよいでしょう)

・プロパティで以下3つを変更します。
「標題」→空白に
「透明」→はい
「タブストップ」→いいえ

・このコマンドボタンを、ラベルの上に重ねます。
(コマンドボタンは、あとから作ったので、重ねた時には上側になると思いますが、)
(上になっていないようであれば、)
(マウス右クリック→位置→最前面へ移動 で上側にしてください)

以上



フォームでの見た目は、ラベルをテキストボックス化したものと同じになると思います。
操作の上で若干異なる点が・・・

コマンドボタンを使った時)
違うレコードの、このコマンドボタンをクリックすると、
フォーカスがフォーム上から無くなったかのように感じます。
(見えてないだけで、透明にしたコマンドボタンにあります)

テキストボックスを使った場合)
そのレコードのタブ移動順の若いものにフォーカスが移動しました。


余談)

この帳票フォームでの、ご質問以外に想定される操作には何がありますか。
レコードセレクタが表示されていて・・・
レコードセレクタを使った、レコードのコピー&貼り付け操作も想定???
もし想定しているのであれば、上記2つ方法での違いは、実際に試してみてください。
    • good
    • 0
この回答へのお礼

たくさんの皆様にご回答を頂きまして誠にありがとうございました。
失礼とは存じますがこの欄にて皆様へのお礼に変えさせて頂きたくご容赦の程よろしくお願い申し上げます。
早速、皆様のご回答の内容を一つづつ勉強しながら実行して見たいと思っております。
又、分からないことがありましたら質問したいと考えておりますのでよろしくお願いいたします。
どうもありがとうございました。

お礼日時:2010/09/08 07:50

1 テキストボックスを作ったときに付属するラベル


2 単独のラベル

1と2の違いは2にはクリック時などのイベントを
設定できますが、1はできません。

1はテキストボックスの付属なのですが、内部的には
連結したコントロールなのでしょう。

ラベルそのものにはフォーカスが移動できません。

ということで、代案としてはラベルを表示している
ところを広げてスペースを作り、下の詳細部分を
直接クリックすれば移動します。
あるいは、ラベルを取り外して詳細部分をクリック
するかです。
いろいろなコントロールを張り付けて細工するよりも
現実的だと思いますが。
    • good
    • 0

fuuten_no_nekoさんの言われたオートフォームか手動作成かの違いは、


こちらでは再現を確認できませんでした(汗)
(XP Home&Access2003での確認なので、特にAccessのバージョン
 違いによる仕様の変化かもしれません)

なので、そこでのラベルの違いは確認できていませんが、nicotinismさん
の言われているのと同様に「テキストボックス(またはコンボボックス等)の
付属かどうか」だとすれば、既存の「フォーカス取得が可能なコントロール」
への付属ラベルとすることで、レコード移動も可能になると思います。
(デザインビューにて当該ラベルをクリックしたら、Ctrl+Xキーの同時押しで
 切り取った後、ラベルがまだついていないテキストボックスを選択して、
 Ctrl+Pで貼り付ければOk)

なお、他のコントロールに付属かどうかでの動作の違いは、付属ラベルの
場合、「ラベルクリック=親コントロールのクリック」となることによります。
(ちなみに、上記方法でコマンドボタンにもラベルをつけることができますが、
 このラベルをクリックするとコマンドボタンも同時に動作します)

逆に、この「親コントロールの連動」が問題になるということで、どうしても
単独ラベルの形式にしたい、という場合は、以下の方法が代替策に
なるかと思います:

1)デザインビューで、当該ラベルを選択
2)メニューで「書式(O)→コントロールの種類の変更(H)→テキストボックス
 (E)」を選択して、テキストボックスに変更
3)変更したテキストボックスをダブルクリックするなどして、プロパティシートを
 開く
4)『データ』タブで以下の設定を変更:
 ・『コントロールソース』→「="(ラベルの時の標題)"」
   ※「(ラベルの時の標題)」には、実際に表示していた文字を指定
 ・『使用可能』→「いいえ」(使用不可&灰色表示化)
 ・『編集ロック』→「はい」(上記での灰色表示を解除)
5)『書式』タブで以下の設定を変更(必要に応じて):
 ・『背景スタイル』→「透明」
 ・『境界線スタイル』→「透明」
 ※上記2つは、設定する順序によっては元に戻されたかもしれません
   ので(汗)、その場合は改めて設定し直してください。


・・・以上です。

こうして「使用不可のテキストボックス」にすると、それをクリックした時は
テキストボックスではなく『詳細』領域(=背景)をクリックしたのと同じと
みなされるため(→どこかで公式見解を見たというのではなく、動作から
の推測です)、レコード移動するようになります。
    • good
    • 0

#1さんのレスを見て私も試して見ました。


テキストボックス付属のラベルならレコードの移動が出来ましたが
ラベルだけ後から配置した場合は出来ませんでした。
なんでかな~?と少しGoogleってみましたがこの辺の詳しい記載が見つかりません。
なので姑息な手段ですが
非連結のテキストボックスを配置して
テキストボックスを高さ、幅を各々ゼロ
タブストップをいいえ等にして極力目立たない
(他のテキストボックスの下に置く・・・)
とか・・・ですかねぇ
非表示にしたらラベルも一緒にお隠れになってしまいました。(^^ゞ
    • good
    • 0

ラベルクリック時のイベントで、



DoCmd.GoToRecord , , acNext

と記述してレコードが移動しませんか。
    • good
    • 0
この回答へのお礼

ご回答、どうもありがとうございました。
できれば任意のレコード(ラベルをクリックしたレコードに)に移動したいのですが。
お手数をお掛けしますがよろしくお願いいたします。

お礼日時:2010/09/07 20:47

ちょっと試してみました。


既存のフォームのラベルクリックでレコードは移動します。おかしいなと思い、新規作成で、オートフォームを利用すると、ナルホドレコードが移動しません。二つのフォームのプロパティ、あるいはラベルのプロパティで何が違うか突き止めようとしましたが解決策は見つかりません。
仕様と諦めて、オートフォームで作ったものをひな形に作り直すのかな?
    • good
    • 0
この回答へのお礼

ご回答を頂きましてありがとうございました。
仕様と諦めることにし、別の方法を検討してみます。
又、ご相談が出てきましたら、その折はよろしくお願い申し上げます。

お礼日時:2010/09/07 14:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A