解決済みの質問

こんばんは。

こんばんは。

Access2003にて、テーブルに住所のデータがすでに何件か入っています。
(学習教材のサンプルデータです)
 住所のフィールドから、ウイザードを使って「住所フリガナ」
のフィールドを作り、住所のフリガナを更新(自動保存)しても、
そこから新しく入力したデータには住所のフリガナがつくのですが、
すでに入力してあるデータには住所フリガナがつきません。

こうしたことは仕様なのでしょうか?
ただ、入力してあるデータを何かいじくろうとするとデータ(住所フリガナ)が
変化します。でも1個1個やるのは大変です。

先日からアクセスを勉強し始めたばかりで、なにぶん初歩的な質問で恐縮ですが
よろしくお願いいたします。

投稿日時 - 2010-01-29 21:37:51

連想キーワード:

QNo.5633572

困ってます

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

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));

これを実行するとフリガナが入って
いないレコードを更新します。
いかがでしょうか。少々説明が長く
なりましたが、何かあれば書き込んで
ください。

投稿日時 - 2010-01-30 06:18:37

お礼

すごく詳しい、説明をいただき本当に感謝しています。

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

投稿日時 - 2010-01-31 02:03:22

ANo.1

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

あわせてチェックしたい
  • PHONETIC フリガナのふりだし ...
  • 住所録 郵便番号変換ウィザードで フリガナを表示させるには? ...
  • ACCESS2000 住所入力支援とフリガナについて ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら