- ベストアンサー
フリガナ検索について
同じような質問があったらすみません。 過去質問も見ましたが、あまりよく理解できなかったので質問させていただきます。 顧客名簿のフリガナ検索をしたいのです。 テーブルには顧客情報に必要な、名前 フリガナ 住所 電話番号 とあり、フォームもそのテーブルを元に作成しています。 そして、そのフォームにテキストボックスをつくり、コマンドボタンで 実行をしたいのです。表示方法はフォームで・・・・。 例えば「サトウ」とテキストボックスに入力し、コマンドボタンを押すごとに、「サトウ」の苗字の人がフォームで次々と表示されるようなのが理想です。 お時間があるときに、教えていただけないでしょうか? 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>フリガナ検索について 標題はこうなっているが、顧客氏名が漢字でもカタカナでも困難度は変わらないと思う。 この質問はアクセスかエクセルですか? テーブルといえば、アクセスだが、テーブルを表と言う一般名詞で使う質問者がいるので正確に。 フォームもエクセルVBAなどにもあるので。 ーーー テーブル 社員3(下記例) フォーム 社員3 フォームのデザインモードで テキストボックスを1つ張り付け(フォームのヘッダー部へ張り付け) コマンドボタンを1つ張り付け (フォームのヘッダー部へ張り付け) 詳細はテーブル「社員3」(内容は下記)より全項目設定した。 ーー コマンドボタンで右クリックして、コマンドボタンの「イベントのビルと」で Private Sub コマンド18_Click() On Error GoTo Err_コマンド18_Click テキスト16.SetFocus MsgBox テキスト16.Text '確認のため、本番では不要 DoCmd.ApplyFilter "社員3", "フィールド5 ='" & テキスト16.Text & "'" Exit_コマンド18_Click: Exit Sub Err_コマンド18_Click: MsgBox Err.Description Resume Exit_コマンド18_Click End Sub を作成した。 ーー 表示ーフォームビュー テキストボックスに「関東」と入れる。 コマンドボタンをクリックする。 「社員3」テーブルの ID フィールド1 フィールド2 フィールド3 フィールド4 フィールド5 フリガナ 1 1 山田 三郎 東京都大田区 03-2345-6543 関東 2 2 大島 義男 東京都品川区 042-2345-2345 関東 3 3 下田 茂 仙台市青葉区 0720-34-3456 東北 4 4 小出 健二 名古屋市緑区 042-345-2345 中部 5 5 中田 卓 福岡市北区 07523-23456 九州 6 6 植田 健 埼玉県川口市 関東 ウエダ ケン 7 7 近藤 一郎 千葉県 関東 コンドウ イチロウ に対し、 フィールド5の「関東」のもの4行(4レコード)を表示した。
その他の回答 (2)
- shinkami
- ベストアンサー率43% (179/411)
ANo.1imogasi様の回答がベターだと思いますが、自分なりの提案をさせていただきます。 今あるフォーム名を参照として話を進めます。 参照をデザインモードにし、プロパティーでデータタグのレコードソースの右端をクリックして「SQLステートメント:クエリビルダ」にフィールドを追加します。 追加の方法は右側の空白のフィールド欄に 頭かな:left(フリガナ,2) で頭カナという名のフィールドが追加されたことになります。 このフィールドの抽出条件欄に[索引] とします。 ここでは[]も含みます。 これでこの参照を開く都度、[索引]の入力ボックスが出てきます。 これでも良いのでしょうが この参照を別のフォームから呼び出すこともできます。この別のフォームをメニューと名づけ、索引と名づけたテキストボックスを追加します。 参照の抽出条件欄の[索引]をforms!メニュー!索引置き換えます。 メニューのテキストboxのプロパティーを表示し、イベントタグのダブルクリック時の右端クリック-…-コードビルダでコーディング画面になります。 Private Sub 索引_DblClick(Cancel As Integer) DoCmd.OpenForm "参照" End Sub 以上です。
お礼
お忙しい中、お答えいただき有難うございます。 今回はアクセスですので、是非参考にさせていただきます。 質問自体が分かりにくいもので、大変申し訳ございませんでした。 有難うございました。
- shinkami
- ベストアンサー率43% (179/411)
エクセルシートの場合は簡単です。 索引列を追加して、ここへフリガナの頭の数文字を式で定義します。 例えばB列がフリガナ列として5行目の式は =left(B5,2) 次に索引列にオートフィルタをかけます。 索引列の項目名をクリックした後メニューバーのフィルターからオートフィルタにチェックを入れて完了です アクセスの場合 検索名を入力するフォームと参照するフォームの2つ作ります。 時間切れです。間に合えば夜に説明します。
お礼
ありがとうございます。 こちらはアクセスです。 分かりにくい質問から丁寧にお答えいただき、 大変助かりました。