• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:こんばんは。 )

Access2003で住所のフリガナを更新したい

このQ&Aのポイント
  • Access2003にて、テーブルに住所のデータがすでに何件か入っています。住所のフィールドから、ウイザードを使って「住所フリガナ」のフィールドを作り、住所のフリガナを更新(自動保存)しても、すでに入力してあるデータには住所フリガナがつきません。仕様なのでしょうか?
  • アクセスの学習教材のサンプルデータに住所のデータがありますが、住所のフリガナを自動的に更新したいです。ウイザードを使って「住所フリガナ」のフィールドを作成しましたが、既存のデータにはフリガナがつきません。これは仕様ですか?
  • 初めてAccessを勉強し始めたばかりで、住所のフリガナの更新について質問があります。すでにテーブルに住所のデータが入っており、ウイザードを使って「住所フリガナ」のフィールドを作成しましたが、既存のデータにはフリガナが反映されません。これは仕様なのでしょうか?

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

Accessには残念ながらそのような機能 はありません。ExcelにはGetPhonetic という便利な関数があります。Excelに 同様のデータがあるのならば簡単に 変換できるのですが。 かといってこのままでは何ですから、 もしPCにExcelがあるのならば、その 関数をAccessから呼び出して変換する ことができます。少し面倒ですが 以下の方法を行ってみてください。 まず、テーブルの名前を住所とします。 フィールドは、ID、氏名、フリガナ とします。次のコードを標準モジュール に貼り付けそのまま保存してください。 Function cmdGetPhonetic(strName As String) As String Dim exObj As Object Set exObj = CreateObject("Excel.Application") cmdGetPhonetic = exObj.GetPhonetic(strName) End Function 次に、変換の確認をするためのクエリ Q確認を作成します。以下のSQL文を 新規クエリのSQLビューに貼り付け、 Q確認として保存してください。 SELECT 住所.ID, 住所.氏名, cmdGetPhonetic([氏名]) AS フリガナ FROM 住所; 次にテーブルのフリガナを更新する クエリQフリガナ更新の作成です。 同様に以下のSQL文を新規のクエリの SQLビューに貼り付けてください。 UPDATE 住所 SET 住所.フリガナ = cmdGetPhonetic([氏名]); これで準備は終了です。まず元データの 住所テーブルを別名で保存しておいてく ださい。次にQ確認のクエリを実行して ください。すると表示は遅いですが、 順次フリガナが表示されていきます。 ただし、このクエリは表示だけでテ ーブルが変更されるわけではありません。 次にQフリガナ更新のクエリを実行 するとQ確認で表示されたようにテ ーブルのフリガナ変更されていきます。 このクエリはすべてのフリガナを 変更します。これでは空白の部分を 埋めることにはならないので以下の SQL文で新規のクエリのSQLビューに 貼り付け、Qフリガナ部分更新として 保存してください。 UPDATE 住所 SET 住所.フリガナ = cmdGetPhonetic([氏名]) WHERE (((住所.フリガナ) Is Null)); これを実行するとフリガナが入って いないレコードを更新します。 いかがでしょうか。少々説明が長く なりましたが、何かあれば書き込んで ください。

famile555
質問者

お礼

すごく詳しい、説明をいただき本当に感謝しています。 「ふりがな」のフィールドの設定方法がテキストにのっていたので、 試しに作ったところ、結果の画面をみて率直に疑問に感じたので 質問させていただいた次第です。 そういえばAccessを使っているだけだった時、 一番最初のフィールドとかの設計をしっかりしておかないと、 後で仕様を変えるのは大変だ、と以前言われたことを思い出しました。

すると、全ての回答が全文表示されます。

関連するQ&A