#389 氏名入力と同時に姓・名も分割入力させるには? フォーム、VBA

「氏名」、「姓」、「名」の3つのテキストボックスがあるフォームにおいて、「氏名」欄に姓と名が半角スペースで区切られて入力されたとき、そこから姓と名を分割し、それぞれのテキストボックスに代入する方法を説明します。

まず次のようなデザインのフォームを例として作成します。3つのテキストボックスはそれぞれ"txt氏名"、"txt姓"、"txt名"という名前になっています。
サンプルフォームのデザイン

そしてtxt氏名テキストボックスの更新後処理イベントプロシージャに次のような処理を記述します。

Private Sub txt氏名_AfterUpdate()
'[氏名]の更新後処理

  Dim strText1 As String
  Dim strText2 As String

  '半角スペースより前を取り出し
  strText1 = Left$(Me!txt氏名, InStr(Me!txt氏名, " ") - 1)
  '半角スペースより後ろを取り出し
  strText2 = Mid$(Me!txt氏名, InStr(Me!txt氏名, " ") + 1)

  '取り出した文字列をテキストボックスに代入
  Me!txt姓 = strText1
  Me!txt名 = strText2

End Sub


実行例:
フォームビューでの実行結果

関連Tips:
   #386 文字列を改行コードで分割するには?
   #158 文字列の途中のスペースを取り除くには?
| Index | Prev | Next |



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