#656 テキストボックスの末尾の改行コードを保持するには? フォーム、VBA

「メモ型(長いテキスト型)」のフィールドと連結されたようなテキストボックスに長い文章を入力したとき、その文章の末尾に空の行、つまり改行コードだけの行がいくつかある場合、Accessの特性として編集確定後にはそれらは無視されて保存されます。

たとえば下図のような状態になります。編集途中と確定後のカーソル位置に着目してください。上図はカーソルの前に空行がありますが、確定後はそれが消えています。





そのようなとき、文章の末尾の改行コードも含めて、入力内容をそのままフィールドに保存させる方法です。

それには、そのテキストボックス(ここでは”備考”)の「AfterUpdate/更新後処理」イベントプロシージャに次のようなコードを記述します。

Private Sub 備考_AfterUpdate()
'[備考]の更新後処理

  Me!備考 = Me!備考.Text

End Sub

ここでは更新後処理イベントで「備考」テキストボックスの「Value」プロパティに同コントロールの「Text」プロパティの値を代入しています(”.Value”という記述は省略可能なため省略しています)。

「Value」プロパティには確定した入力内容が保持されています。一方、「Text」プロパティには確定前の実際の入力内容(=末尾の改行コードも含んだもの)が保持されています。Accessでは何もしなければ更新後処理のあとに末尾の改行コードが消されてしまうので、その前に意図的に末尾の改行コードも含めた値をValueプロパティに移すことで、その対策を行っています。


実行例:


| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved