• ベストアンサー

アクセスについて

アクセス2002を使ってします。 テーブルを作成する時に、 「得意先名」、「ふりがな」というふたつのフィールドがあるとします。 「得意先名」に漢字で名前を入力すると、「ふりがな」フィールドにふりがなを出すようにしたいのですが、 その時に、「前株(株)」や「有限会社」は表示したくありません。 例:得意先名フィールドに「(株)山田」という入力したら、「ふりがな」フィールドには「やまだ」とだけ表示されたいのですが、 何か方法はありますでしょうか? お返事遅くなるかもしれませんが、 どうぞ宜しくお願い致します。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.4

クエリ(とマクロ)で行う手もあると思います。 <テーブルの作成> ・社名一覧:社名(テキスト型)、ふりがな(テキスト型) ・削除テキスト:対象テキスト(テキスト型) ※「削除テキスト」テーブルには、「(かぶ)」「(ゆう)」「かぶしきがいしゃ」「ゆうげんがいしゃ」などを入力しておきます。 <クエリの作成> ・不要除去_右:新規クエリをデザインビューで開いた後、SQLビューに切り替え、以下のSQL文を貼り付け: UPDATE 社名一覧, 削除テキスト SET 社名一覧.ふりがな = Left([ふりがな],Len([ふりがな])-Len([対象テキスト])) WHERE (((社名一覧.ふりがな) Like "*" & [対象テキスト])); ・不要除去_左:上と同様にして、以下のSQL文を貼り付け: UPDATE 社名一覧, 削除テキスト SET 社名一覧.ふりがな = Right([ふりがな],Len([ふりがな])-Len([対象テキスト])) WHERE (((社名一覧.ふりがな) Like [対象テキスト] & "*")); あとは、データメンテ的にこの2つのクエリを実行すれば、右端/左端にある、「削除テキスト」テーブルに記録したテキスト(ふりがな)を削除することができます。 (もし「○○(株) ▲▲」といった社名があると、更に対応が必要になりますが・・・) また、フォームの「社名」テキストボックスに更新後クエリを実行するマクロやVBAを組めば、一応、データメンテでなくてもよいことになります。 (作業がワンテンポ遅くなるのは否めませんが)

humimari
質問者

お礼

ご回答有難うございます。 こういう方法もあるんですね。 全然思いつきませんでした。 参考になりました。 本当に有難うございました。

その他の回答 (3)

noname#27115
noname#27115
回答No.3

#2さんの言っている入力方法によるばらつきによって チェック漏れが起こることは当然考えられます。 なのであり得る入力方法を一覧にしておくかデータ ベース化して、逐次チェックする事になると思います。 ただ、どっちにしてもVBA [この場合、そんなに大した こと無い] がいります。 将来的なことを考えればじっくりと、一度、学習され ることをおすすめします。

humimari
質問者

お礼

そうですね。 VBAの勉強をしたいと思います。 有難うございました。

noname#79209
noname#79209
回答No.2

VBAの知識がないのでしたら、#1の方の言われている「入力後のイベント」を設定するのは無理でしょう。 VBAの知識がおありでしたら、注意点を... データ入力が質問者さんのみでなく、他の方が入力される場合もあるなら、チェックの方法が質問者さんの入力のクセだけを考えているとすり抜けてしまいます。 例えば「(株)」を入れるときに先に「()」を入力してから「株」を入力する人もいます。するとふりがなは部分は「()かぶ」となりますから。 あと「有限会社」を「ゆうげん」「かいしゃ」と入れる人もいるかもしれないので「ゆうげんがいしゃ」でチェックしてもすり抜けてしまいます。

humimari
質問者

お礼

ご回答有難うございます。 VBAの知識は、お恥ずかしいですが、ほぼありません。 やっぱりVBAですよね…。 有難うございました。

noname#27115
noname#27115
回答No.1

とりあえず入力させて、入力後のイベントに、特定の文字を見つけたら消すという作業を書けばどうでしょうか? (株)や(有限会社)が実際、ふりがなフィールドにどういう形ではいるかわかりませんが、ここでいう特定の文字とはそれに相当します。 また、消すというのは空白("")ダブルコーテーション2つで置き換えるということです。

humimari
質問者

お礼

ご回答有難うございます。 >とりあえず入力させて、入力後のイベントに、特定の文字を見つけたら消すという作業を書けばどうでしょうか? これはどのようにしたらいいのでしょうか? 申し訳ございません。 宜しくお願い致します。

関連するQ&A