最初の文字列がクリアーされない

このQ&Aのポイント
  • Windows10、office2007のソフト環境でテキストボックスに表示できない文字列表示の方法を教えていただきましたが、最初にクリックした文字列データがクリアされず、違うレコードの文字列データをクリックしても表示されてしまいます。
  • テキストボックスのコードビルダの「更新後処理」にプロシージャを記述し、テキストボックス文字列の末尾に特定の記述をすることで、問題が解決する可能性があります。
  • 再指導をお願いします。
回答を見る
  • ベストアンサー

最初の文字列がクリアーされない

[ソフト環境の紹介] Windows10 、office2007 [経緯を紹介] テキストボックスに表示できない文字列表示の方法として、以前に下記の方法をご教授いただきました「感謝」。 [不具合発生] 最初にクリックた文字列データが、次にクリックしたデータにも表示されてしまいます。つまり、最初にクリックした文字列データがクリアーにならず、違うレコードの文字列データをクリックしても表示されてしまいます。ご面倒をおかけしますが、再指導をお願いします。 [設定(プロシージャの記述1)と(文面追記2)] 1,テキストボックスのコードビルダの「更新後処理」で以下を記述する。 テキストボックスを選択した状態で、イベントの「更新後処理」でプロシージャを選ぶ。 Private Sub ◯◯_AfterUpdate() ◯◯.ControlTipText = ◯◯.Value End Sub 2,テキストボックス文字列の末尾を以下の記述にする。 ◯◯◯◯1行目<Ctrl>+<Enter> ◯◯2行目<Ctrl>+<Enter> ◯◯◯3行目 以上ですが、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1614/2452)
回答No.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

eokwave
質問者

お礼

ご返事が遅れて申し訳ございません。データがない時等のエラー対策は、私、全く考えていませんでしたので、改善策に感謝いたします。質問させていただきました問題が全て解決しました。何度も検証いただき最適案をご提示いただけたこと、心よりお礼申し上げます。ありがとうございました。 [以下の通り記述いたしました] (レコード移動時「フォーム」) 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 ありがとうございました。

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率65% (1614/2452)
回答No.3

No2の訂正です。 > フォーカス取得時に変更してみてください 変更ではなくフォーカス取得時を追加がいいと思います。 また、場合によってはクリック時も追加しておいた方がいいかもしれません。 このあたりはどのタイミングがベストかご自身で確かめてみてください。

eokwave
質問者

お礼

アドバイスありがとございます。完璧になりましたので、最後のページでご返事させていただきます。

  • kkkkkm
  • ベストアンサー率65% (1614/2452)
回答No.2

ControlTipTextはそのフィールド◯◯に関連付けられたポップヒントになりますので、更新後処理では◯◯のデータが変更されるまで、オンマウス状態で同じ文字列が表示されます。 クリックしたときに内容を変更するように、フォーカス取得時に変更してみてください。 Private Sub ◯◯_Enter() Me.◯◯.ControlTipText = ◯◯.Value End Sub

eokwave
質問者

お礼

アドバイスありがとございます。完璧になりましたので、最後のページでご返事させていただきます。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

>最初にクリックた文字列データが、  次にクリックしたデータにも表示されてしまいます。 1.1この2つのテキストボックスのコントロールソースが同じではありませんか  添付図を参考にして下さい 1.2テキストっボックスの左上角に小さなカラーの印がありませんか  存在しないコントロールの時に点灯します >再指導をお願いします。  元の質問のURAを補足願います。

eokwave
質問者

お礼

ご返事が遅れて申し訳ございません。テキストボックス「名前:メモ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

関連するQ&A

  • 長さ0の文字列を格納できません。とエラー発生して困っています。

    アクセスのデータベースのフィールド1~20ぐらいのを各テキストボックスに表示させています。そこでテキストボックス内の文字や数値を変更して更新したいのですが、変更や追加は今の所可能ですが、データを空にすると「長さ0の文字列は格納できません。」と表示されます。 みなさんはこの様な時、空のデータにするにはどの様にされていますか?

  • 「Alt+Enter」で折り返した文字列。1行目は何文字? 2行目は何文字?

    セルの中に、「ALt+Enter」で複数行に折り返している文字列があって、 1行目は何文字で、折り返した2行目は何文字、3行目は何文字… とカウントさせたいのですが…??? 無理??? できましたら、具体的に記述して教えてください。

  • 文字列の比較

    現在Cでプログラムをつくっているのですが いきずまってしまいました。 1.テキストファイルを読み込む 2.書き込みファイルを開く 3.読み込んだデータを一行読み込んで   その行の特定の文字列があれば、   特定の文字列のみ取り出し、   書き込みファイルに書く。    4.次以降の行も同じ処理をする。    5.読み込み、書き込みファイルを閉じる。 と、こんな感じのプログラムなのですが、 3の特定の文字列をどのように取り出せばいいのかわかりません。 取り出したいのが数字ならば、if文でできるのですが 文字列の場合は、どうなんでしょうか。 例えば、「MOJIRETU11」という取り出したいとき 数字と同じようにIF文を使用することは、できるのでしょうか。

  • テキストボックスへの文字の表示について(文字は可変である)

    リストボックスと関連付けさせて、テキストボックスに文字を表示させたいです。 表示のさせ方としては、例えば、リストボックスに5つ(5行)の文字列があります。 実現させたい事は、常にそのページが開いた時はリストボックスの1行目をテキストボックスに表示させたいです。簡単な具体例をあげると、 リストボックスに 1行目に「あ」、 2行目に「い」、 3行目に「う」、 4行目に「え」、 5行目に「お」 とあれば、 テキストボックスに、「あ」と表示。 2行目を選択したら「い」と表示。など・・・。 しかし、リストボックスの文字列の順番は場合により並びが同じではないので、スクリプト言語(VBScript?)を用いないといけないとは思いますが・・・ この例をいうと、ページが開いた時、 1行目に「お」、 2行目に「え」、 3行目に「う」、 4行目に「い」、 5行目に「あ」 とあれば、 テキストボックスに、「お」と表示してほしい。 この説明でご理解いただければ幸いです。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • EXCELの文字列を貼付けた時の「"」をなくしたい

    EXCELのセルに複数行の文字列が入っています。 このセルを選択して、Ctrl+Cでコピーしました。 次に「メモ帳」などのテキストエディタを開き、Ctrl+Vで貼り付けました。 すると、先頭と最後に「"」が付加されてしまいます。 この「"」をなくすにはどうすればよいかアドバイスをいただけないでしょうか? なお、実際はテキストエディタではなく、Webページのフォームに入力するため、文字列の置換はできません。 よろしくお願いいたします。

  • 重複した文字列をカウントして取り出したい

    初めて質問させていただきます。 VB初心者です。 ソートされた文字列の書き込まれたファイルを読み、 (文字列は、 ”000” ”001” ”001” ”001” ”002” ”002” ”003” といったように書き込まれています。) そこから、3つ連続して並んでいる文字列を探し出して、 その文字列と、3つ連続していた文字列がいくつあったのか表示するプログラムを作りたいのですが、 どうにも処理速度が遅く、さらに行数が1万を超えると、応答なしになってしまいます。 どなたか、上手い処理の方法があれば、ぜひともご教授の程をお願いします。 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click OpenFileDialog1.FileName = "" OpenFileDialog1.InitialDirectory = "c:\" If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then TextBox1.Text = My.Computer.FileSystem.ReadAllText _ (OpenFileDialog1.FileName, System.Text.Encoding.Default) End If End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim x As Integer Dim xyz As Integer '行数を調べる。 Dim i As Integer = TextBox1.Lines.Length TextBox2.Text = (i - 1 & "行") MessageBox.Show("一時停止") For ix = 0 To i - 2 '1行目と2行目を比較 If TextBox1.Lines(x) = TextBox1.Lines(x + 1) Then '2行目と3行目を比較 If TextBox1.Lines(x + 1) = TextBox1.Lines(x + 2) Then '3つある番号を記入。 TextBox2.Text = TextBox2.Text + vbCrLf + TextBox1.Lines(x + 2) '3回重複したことをカウント。 'MessageBox.Show("3発見") xyz = xyz + 1 Else End If Else End If '調べる行を+1 x = x + 1 Next TextBox2.Text = TextBox2.Text + vbCrLf + ("3つ以上は、" & xyz & "個") End Sub Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub End Class

  • rubyのsub、gsubを使った文字列の置換について

    rubyによる文字列の置換でちょっと困っています。 例えば text = "ABCDABCEFG" という文字列があったとします。 その中の"ABC"の部分を"あいう"と置き換える場合 text = text.gsub(/ABC/, "あいう") で text = "あいうDあいうEFG" と置換できるはずです。 以上のような操作は問題ないのですが 置換対象と置換後の文字列を以下のように定義して subに放り込むということは出来ないのでしょうか。 置換前文字列:mae = "ABC" 置換後文字列:ato = "あいう" text = text.gsub(/mae/, ato) でもこれだと置換対象が"mae"という 文字列になってしまいますよね・・・ そもそもこのような機能はrubyにはないのでしょうか。 でも無いとかなり不便だと思いますが・・・ 現在何十万行のcsvファイルを数千行の置換文字列対応表 をつかっていっぺんに処理しようとしまして 以上のような方法をとろうとして詰まっています。 どなたか詳しい方ご教授よろしくお願いします。

  • 終了していない文字列型の定数です・・・と出ます。

    javaScript使用可能・不可能の表示 ↓ 「OK」「キャンセル」ボタン付きのダイアログボックスの表示 ↓ OK→次のページへ キャンセル→ダイアログボックスを閉じる というようなスクリプトを作ったのですが、最初は上手く動いたのですが、すこしダイアログボックスの文字を変更すると、終了していない文字列型の定数です・・・ というエラーを吐いてきます。 どうやらここの文字が多すぎるとエラーを吐くのですがどうなのでしょうか。 http://mekipedia.cocolog-nifty.com/test.txt これがタグのデータです。 このテキストデータでは表示できるようなので、文字コードか何かでしょうか・・・。 では、よろしくお願いします。

  • テキストボックの文字を一行ずつ読み込む

    こんにちは。 VB6.0にてフォーム上のテキストボックスの文字列を1行ずつ読み込んで処理し、別のテキストボックに書き出したいのですが、1行ずつ読む方法が分かりません。(テキストファイルなら出来るのですが) 何方か方法をご存知ないでしょうか。 宜しくお願いします。

  • VBAで前々から気になっていることがあります。例えば、

    VBAで前々から気になっていることがあります。例えば、 Private Sub Button検索_Click() 何らかの処理コードが記述 End Sub 検索のコードが記述されているとします。キーワードをテキストボックスに入れて検索されてヒットしたデータはフォームのテキストボックスなどに表示されるとします。検索は連続検索が可能で該当するデータが無くなるまで、この検索ボタンを押す限り検索が可能だとします。 さてここで質問ですが、この上記の一連の検索の途中で仮に更新、削除したいデータを発見したとします。 そんな場合は、 Private Sub Button検索_Click() 何らかの処理コードが記述 Private Sub Button削除_Click() 何らかの処理コードが記述 End Sub Private Sub Button更新_Click() 何らかの処理コードが記述 End Sub End Sub などということは可能なのでしょうか、それとも更新や削除のソースは、 Public Function 更新(又は削除)() As Integer 何らかの処理コードが記述 End Function としなければいけないのでしょうか。ご存知の方教えてください。よろしくお願いします。

専門家に質問してみよう