Access VBA Mid,Instrで名前を姓と氏名に分けてフィールドに転記

名前を姓と名に分けてテーブルの其々の空のフィールドに書込みます。
テーブルの姓と名の間にはスペースがある事を前提とします。
Instrで姓、名の値までの文字列の数を取りMidで値を抽出します。
フィールド『氏名』がNullの場合は処理しません。
一般的には関数を作りクエリで処理しますが、VBAで直接処理してみました。
,-------------------------------------------------------
Sub 名前分割()

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim n1, n2 As String

Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset

rs.Open "氏名", cn, adOpenKeyset, adLockOptimistic
Do Until rs.EOF
If IsNull(rs!氏名) = False Then
'姓の値を取得
n1 = Mid(rs!氏名, 1, InStr(rs!氏名, " ") - 1)
'名の値を取得
n2 = Mid(rs!氏名, InStr(rs!氏名, " ") + 1)
rs.Update "姓", n1
rs.Update "名", n2
End If
rs.MoveNext
Loop

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

End Sub
,-------------------------------------------------------

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック

  • フェラガモ アウトレット

    Excerpt: Access VBA Mid,Instrで名前を姓と氏名に分けてフィールドに転記 中年男が書いたVBA,SQLのプログラミング/ウェブリブログ Weblog: フェラガモ アウトレット racked: 2013-07-03 13:09