こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

AccessVBAでIBM特殊文字を調査

Access2000でテーブルにある氏名から特殊文字が使用されているか調査したいのです。
テーブルやVBAは下記の通りです。

顧客テーブルがあり、内容はキー番号(半角10バイト)、漢字氏名(全角50バイト)、カナ氏名(半角50バイト)です。
漢字氏名フィールドを調査して特殊文字コードが存在した場合エラーメッセージを表示したいのです。ロジックを以下の通り作成したのですが、すべての漢字氏名がエラーとなってしまいます。
なぜでしょうか?教えていただけますでしょうか。お願いいたします。

Public Sub 調査()
  Dim DB As DAO.Database
  Dim RS As DAO.Recordset
  Dim Moji As String

  Set DB = CurrentDb()
  Set RS = DB.OpenRecordset("顧客テーブル", dbOpenDynaset)

Do Until RS.EOF
  If RS!漢字氏名 Like "*[" & Chr("&hFA40") & "-" & Chr("&hFC4B") & "]*"
  Then
   Msgbox RS!漢字氏名
  End If
  RS.MoveNext
Loop
  RS.Close: Set RS = Nothing
  DB.Close: Set DB = Nothing
End Sub

投稿日時 - 2011-09-19 21:10:32

QNo.7021799

困ってます

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

問題の特殊文字はシフトJISの「漢字3」に属するものですね。
シフトJISコードでは確かに「FA40~FC4B」の連続した範囲なのですが、
残念ながらデータベース自体がユニーコードになっており、
0x2170~0x2179、0x2160~0x2169、0xffe2、0xffe4、0xff07、0xff02、0x3231、0x2116、...
ってな具合にバラバラで連続していないのです。
ですから、単純には判定できません。
やるとすれば、別テーブルに特殊文字を1文字ずつ格納して
それと漢字氏名を比較するなんてのがよろしいかと。
さもなくば、VBAで読み込んだ漢字氏名を1文字ずつ検査するとか。

投稿日時 - 2011-09-19 22:58:48

お礼

ありがとうございました。
ユニーコードになっていたとは知りませんでした。
大変参考になりました。

投稿日時 - 2011-09-19 23:59:36

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問