• ベストアンサー

Access2000 顧客マスターを作ってます

アクセス2000で、顧客リストを作っています。 会社名を、正式に「株式会社○○○」と入力し、自動的にフリガナ欄に入力できるようにしたいのですが、「カブシキガイシャ○○○」と入るのではなく、「○○○」と入力できるようにしたいんです。 また同じように「○○株式会社」の場合は「○○」とだけ入力できるように。 自動的にフリガナが入力できる方法は見つかったのですが、どうしても株式会社を自動で除く方法がわかりません。 ソートして便利に使うためにも、必要なので教えてください。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

「カブシキガイシャ」をカットするプロシージャーを作成し、フリガナ欄のコントロールのAfter_Updateなどのイベントでコールすれば良いかと。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

No.1です。補足します。 簡単なのは、「フリガナ」フィールドの置換で「カブシキガイシャ」をカットする方法でしょうか。しかし、データによっては余分なスペースが残ったり、それを削除するのが難しかったりしますね。そうなってくると結局、ソートで期待どおりに並び替えができないでしょう。 したがって、ある程度確実に、かつ自動でやるにはVBAで処理するしかありません。限られたスペースでは細かくご説明できませんので、ヒントということでお願いします。 【標準モジュール】 まず、下記ユーザー定義関数 CutStr を標準モジュールに貼り付け。 Public Function CutStr(strParam As String) As String   Dim aryCutWord   Dim i As Long   'カットする語を定義(財団や社団法人なども必要であれば、要編集)   aryCutWord = Array("カブシキガイシャ", "ユウゲンガイシャ")   For i = 0 To UBound(aryCutWord)     strParam = Replace(strParam, aryCutWord(i), "", , , vbTextCompare)   Next i   CutStr = Trim(strParam) End Function 【ユーザーフォーム】 入力用ユーザーフォームには 1. 会社名入力テキストボックス:txtName 2. 会社名フリガナ入力テキストボックス:txtKana があり、txtName のプロパティー「ふりがな」で txtKana にフリガナが全角カナで自動入力されるように設定します。そして、txtName の BeforeUpdate イベントなどで前述のユーザー定義関数をコールします。 以下は、サンプルコードです。 Private Sub txtName_BeforeUpdate(Cancel As Integer)   If Not IsNull(txtKana) Then     txtKana = CutStr(txtKana)   End If   End Sub

関連するQ&A