- ベストアンサー
最初の文字列がクリアーされない
- Windows10、office2007のソフト環境でテキストボックスに表示できない文字列表示の方法を教えていただきましたが、最初にクリックした文字列データがクリアされず、違うレコードの文字列データをクリックしても表示されてしまいます。
- テキストボックスのコードビルダの「更新後処理」にプロシージャを記述し、テキストボックス文字列の末尾に特定の記述をすることで、問題が解決する可能性があります。
- 再指導をお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No3の訂正です。 フィールド◯◯の更新後処理と フォームのイベントのレコード移動時に Me.◯◯.ControlTipText = ◯◯.Value がいいような気がしてきました。 なお、何もデータがない場合(◯◯のデータを削除したときとか新しいレコードに移動したときとか)にはエラーになると思いますので、以下のようにしておいた方がいいと思います。 Private Sub Form_Current() If ◯◯.Value <> "" Then Me.◯◯.ControlTipText = ◯◯.Value Else Me.◯◯.ControlTipText = "" End If End Sub Private Sub ◯◯_AfterUpdate() If ◯◯.Value <> "" Then Me.◯◯.ControlTipText = ◯◯.Value Else Me.◯◯.ControlTipText = "" End If End Sub
その他の回答 (3)
- kkkkkm
- ベストアンサー率66% (1719/2589)
No2の訂正です。 > フォーカス取得時に変更してみてください 変更ではなくフォーカス取得時を追加がいいと思います。 また、場合によってはクリック時も追加しておいた方がいいかもしれません。 このあたりはどのタイミングがベストかご自身で確かめてみてください。
お礼
アドバイスありがとございます。完璧になりましたので、最後のページでご返事させていただきます。
- kkkkkm
- ベストアンサー率66% (1719/2589)
ControlTipTextはそのフィールド◯◯に関連付けられたポップヒントになりますので、更新後処理では◯◯のデータが変更されるまで、オンマウス状態で同じ文字列が表示されます。 クリックしたときに内容を変更するように、フォーカス取得時に変更してみてください。 Private Sub ◯◯_Enter() Me.◯◯.ControlTipText = ◯◯.Value End Sub
お礼
アドバイスありがとございます。完璧になりましたので、最後のページでご返事させていただきます。
- chayamati
- ベストアンサー率41% (260/624)
>最初にクリックた文字列データが、 次にクリックしたデータにも表示されてしまいます。 1.1この2つのテキストボックスのコントロールソースが同じではありませんか 添付図を参考にして下さい 1.2テキストっボックスの左上角に小さなカラーの印がありませんか 存在しないコントロールの時に点灯します >再指導をお願いします。 元の質問のURAを補足願います。
お礼
ご返事が遅れて申し訳ございません。テキストボックス「名前:メモ01」で「コントロールソース:メモ」です。名前を「メモ」に変更してみましたが、やはり同じ結果でした。それと、テキストっボックスの左上角に小さなカラーの印は確認できませんでした。すいません。又、データがない時等のエラー対策を考えていませんでしたので、後にアドバイスを頂いた方の方法で試してみましたところ、問題が解決しました。最初にアドバイスを頂いた事に対して、ご報告とお礼とさせていただきます。「本来なら角度の違うアドバイスに対して、じっくり検証すべきかもしれません。私に相応のスキル(勉強不足が原因)があればと思っています。お気を悪くなされましたらお許しください」 「レコード移動時(フォーム)」 Private Sub Form_Current() If メモ01.Value <> "" Then Me.メモ01.ControlTipText = メモ01.Value Else Me.メモ01.ControlTipText = "" End If End Sub 「更新後処理(テキストボックス)」 Private Sub メモ01_AfterUpdate() If メモ01.Value <> "" Then Me.メモ01.ControlTipText = メモ01.Value Else Me.メモ01.ControlTipText = "" End If End Sub ありがとうございました。「元の質問の履歴ですが:https://okwave.jp/qa/q9308547.html」
お礼
ご返事が遅れて申し訳ございません。データがない時等のエラー対策は、私、全く考えていませんでしたので、改善策に感謝いたします。質問させていただきました問題が全て解決しました。何度も検証いただき最適案をご提示いただけたこと、心よりお礼申し上げます。ありがとうございました。 [以下の通り記述いたしました] (レコード移動時「フォーム」) Private Sub Form_Current() If メモ01.Value <> "" Then Me.メモ01.ControlTipText = メモ01.Value Else Me.メモ01.ControlTipText = "" End If End Sub (更新後処理「テキストボックス」) Private Sub メモ01_AfterUpdate() If メモ01.Value <> "" Then Me.メモ01.ControlTipText = メモ01.Value Else Me.メモ01.ControlTipText = "" End If End Sub ありがとうございました。