- ベストアンサー
Access2002での氏名の変換?
Access初心者です。 外部データをインポートしたのですが、氏名の記載が ひらがな・カタカナ混じりに全角・半角も混じってます。 最終的にカタカナ・半角に修正したいのです。 そこで 1.ひらがな⇒カタカナ変換 あるいは 2.全角⇒半角変換 クエリーウェザードでの方法は分るのですが・・・? 例えば1.のクエリーを保存してから、そのカタカナ変換したものを元に全角を半角に変換したいのですが、上手くいきません・・・? ご教示ください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
・まず、普通に選択クエリを作ります。 (1) [フリガナ]を含むテーブルから、[フリガナ]フィールドのみを選択。 ・選択クエリーを更新クエリーに変換します。 (2) (1)のクエリーをデザインビューで開いている状態で、[クエリ]メニューから[更新]を選択し上書保存。 ・更新する内容(計算式)をインプットします。 (3) (2)で更新クエリに変換したとたんに、表形式の表示なっているところに「レコードの更新」という入力業が増えたと思いますので、ここに計算式 StrConv(StrConv([フリガナ], 16), 8)と入力します。 ※ vbKatakana などの定数はVBAでしか使用できませんので、SQLで使用する場合は 16 という数値で設定します。 (4) これで、クエリーの表のところの設定内容は フィールド:フリガナ テーブル:Table レコードの更新:StrConv(StrConv([フリガナ], 16), 8) となっていますね。 ※ [フリガナ]というのは説明のために私が振っている仮称です。実際はそのテーブルのフィールド名を入力します。 このクエリーを実行すれば、[フリガナ]フィールドに含まれるひらがなもカタカナもすべて半角カタカナになります。 なお、実行前にこのクエリーをデータシートビューで開いても、抽出された[フリガナ]フィールドが確認できるだけで、変換された結果が表示されるわけではありません。
その他の回答 (3)
- vantage
- ベストアンサー率60% (310/514)
#1、#3です。 言い忘れましたが、 更新クエリーはいきなり「[フリガナ]を含むテーブル」本体で試さない方が良いと思います。 バックアップを取っておくか、コピーしたテストデータで試してみましょうね。 老婆心ながら・・・ PS:#3「入力業」=「入力行」でしたね。
お礼
ご丁寧にありがとうございます。 バックアップを取りました。
- how-do-you-do
- ベストアンサー率56% (59/104)
#1さんの回答で大丈夫です 下記式では? =StrConv(StrConv([氏名], 16), 8) vbKatakana = 16 vbNarrow = 8 ヘルプを調べてみましょう
補足
how-do-you-doさん、はじめまして。 回答ありがとうございます。 少し質問文が不正確でした。 氏名は漢字入力されており、問題のフィールドは「フリガナ」です。 従って、ご教示の ・[氏名]⇒[フリガナ] に変えて操作を行いましたが、最終的にはブランク(空)でした・・・? どこがおかしいのでしょうか・・・? 再度ご教示の程よろしくお願いします。
- vantage
- ベストアンサー率60% (310/514)
こんな関数でご希望の動作になります。 =StrConv(StrConv([氏名], vbKatakana), vbNarrow) 詳細は“StrConv”をヘルプで引いてみて下さい。
補足
vantageさん、初めまして。 早速回答ありがとうございます。 もう少しご教示ください。 デザインビューを表示させて関数は入れたのですが、データシートビューに切り替えると ・「vbKatakana」 に続いて ・「vbNarrow」 を聞いてきますが、ここには何を入れれば良いのでしょうか・・・? 適当に入れると「エラー」になります・・・? お手数ですが再度よろしくお願いします。
お礼
vantageさん、何度も懇切丁寧にご教示頂きたありがとうございました。 無事解決しました。 ものの本を見ながらトライしていたのですが、本では「計算式の動作確認」の無駄な操作が入っていたりして・・・? この式は ・カタカナ変換⇒半角変換 なのですね? 今後ともよろしくお願いします。