漢字とふりがなで抽出できるようにしたい

このQ&Aのポイント
  • 名簿データにおいて、漢字とふりがなを抽出できるようにしたいです。
  • データベースにT名簿というテーブルがあり、名前、ふりがな、所属の情報を持っています。
  • また、F名簿というフォームでは、名前テキストと所属テキストを配置しています。名前も所属もNull値でも検索できるようにしたいです。
回答を見る
  • ベストアンサー

漢字とふりがなで抽出できるようにしたい

長くなりますがお付き合いいただければ幸いです。 T名簿(テーブル) 名前   ふりがな     所属(フィールド) 佐藤武   さとうたけし      B社 田中太郎  たなかたろう      A社 ****************************************************** F名簿(フォーム) 名前テキスト 所属テキスト を配置しています。 ****************************************************** 名前も所属もNull値でも検索できるようにしたいので SELECT T名簿.名前, T名簿.ふりがな, T名簿.所属 FROM T名簿 WHERE (((T名簿.名前) Like "*" & [Forms]![T名簿]![名前テキスト] & "*") AND ((T名簿.所属) Like "*" & [Forms]![T名簿]![所属テキスト] & "*")); としました。 このクエリなら F名簿の名前テキストに「佐藤武」と入力したら、佐藤武のレコードが表示されます。 さらに F名簿の名前テキストに「さとうたけし」と入力しても 佐藤武のレコードが表示できるようにしたいのですがどうすればいいでしょうか?

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

((T名簿.名前) Like "*" & [Forms]![T名簿]![名前テキスト] & "*") 部分を (((T名簿.名前) Like "*" & [Forms]![T名簿]![名前テキスト] & "*") OR ((T名簿.ふりがな) Like "*" & [Forms]![T名簿]![名前テキスト] & "*")) としてみてどうなりますか。 全体的にみると A AND B で、 A 部分が上記、B 部分が ((T名簿.所属) Like "*" & [Forms]![T名簿]![所属テキスト] & "*") 書き方を IIF を使ったものに書き換えてみると、 IIF(IsNull([Forms]![T名簿]![名前テキスト]), True, (T名簿.名前 Like "*" & [Forms]![T名簿]![名前テキスト] & "*") OR (T名簿.ふりがな Like "*" & [Forms]![T名簿]![名前テキスト] & "*") ) AND IIF(IsNull([Forms]![T名簿]![所属テキスト]), True, T名簿.所属 Like "*" & [Forms]![T名簿]![所属テキスト] & "*" ) ※ 各フォーム上のテキストボックスが Null だったら無条件で True を、   Null じゃなかったら抽出条件を記述します。 ※ 未検証

87poioi
質問者

お礼

ありがとうございました。

関連するQ&A

  • Access2000 抽出について

    どうしてもわからないので教えてください。 選択クエリで、「フリガナ」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![カナ検索]),"*",[Forms]![F_顧客検索]![カナ検索] & "*") でフォームからクエリを実行させるようにしているのですが、 フリガナが空白のレコードは抽出されてくれません。 「*」でなく、なんと入れればいいのでしょうか? ちなみに他に、「自宅電話番号」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![電話検索]),"*" & "*",[Forms]![F_顧客検索]![電話検索] & "*") など、似たような感じで抽出をかけています。 よろしくお願いします。

  • VBAによるフィルターでレコードを抽出するには

    レコードの抽出をマクロで行っております。 アクション欄に「フィルターの実行」を設定しWhere条件式に[氏名フリガナ] Like [Forms]![フォーム名]![抽出テキスト名] & "*" Or [氏名] Like [Forms]![フォーム名]![抽出テキスト名] & "*"  と記述して上手くいってます。 これをVBAで行いたいのですが、上記マクロをツールの「マクロをVisual Basic に変換」した式を使用したらエラーになりました。 ちなみにマクロ変換した式は DoCmd.ApplyFilter " ", "[氏名フリガナ] Like [Forms]![フォーム名]![抽出テキスト名] & ""*"" Or [氏名] Like [Forms]![フォーム名]![抽出テキスト名] & ""*""" です。 どこを訂正したら上手くいくのかご指導をお願い致します。

  • アクセス:like以下に変数を使って書くには?

    アクセスで困っています。 フォーム上にテキストボックスを設置し, そのテキストを検索ワードとしてレコードを抽出しようとしています。 レコードソースに入力する方式です。 以下のコードはきちんと動作しました。 Dim KENword As String KENword = [Forms]![Fその1]![検索ボックス] Me.RecordSource = "select * FROM テーブル WHERE (名前 like '*" & KENword & "*') or (所属 like '*" & KENword & "*')" さらに,likeの後ろを丸ごと変数にしたいと思い,次のように書きました。 Dim KENword As String Dim KENlike As String KENword = [Forms]![Fその1]![検索ボックス] KENlike = "'*" & KENword & "*'" Me.RecordSource = "select * FROM テーブル WHERE (名前 like KENlike) or (所属 like KENlike)" しかしこうすると, パラメーターの入力 KENlike の画面が出てしまいます。 msgboxなども使って試したのですが, どこが間違っているか分からず困っています。 どう直せばよいのでしょうか。 教えていただけると助かります。

  • 検索にて抽出されたレコードをほかのテーブルに追加

    フォームで検索条件指定ご、マクロにて検索ボタンクリック時にフィルタ実行で、入力した条件と一致するものが抽出されるようになりました。 そこで抽出されたレコードをすでに作成してある検索履歴テーブルへ追加していき、あとでその履歴が見れるようにしたいのです。 イロイロ検索したところ、追加クエリを使用するように思うのですが、使い方が良くわからなく困っています。 詳しく教えてくれる方よろしくお願いします。 マクロのWhere条件は [姓フリガナ]=[Forms]![F照会]![姓検索] And [名フリガナ]=[Forms]![F照会]![名検索] And [生年月日]=[Forms]![F照会]![生年月日検索] 姓名フリガナ生年月日が一致するもの この抽出されたレコードのIDと、検索日を履歴としてのこしていきたいです。

  • ACCESSでの抽出について

    単純なクエリの抽出なのですが・・・。 区フィールド、町フィールドをクエリで作成して そのクエリを元に抽出フォームを作成しました。 そして、クエリの抽出条件に以下の式を入力しました。 Like "*" & [Forms]![F_抽出]![区] & "*" Like "*" & [Forms]![F_抽出]![町] & "*" しかし、大本のデータに [区]フィールド→品川区 [町]フィールド→空白 ・・・と、どちらかが空白の場合、そのレコード を抽出してくれません。 このように、空白フィールドを持つレコードをも 抽出するにはどのようにしたらようですか? 初歩的な質問で申し訳ありませんがよろしくお願いいたします。

  • ACCESSでのクエリ抽出条件について

    ACCESS超初心者です。 自分なりに調べたのですが、知識不足によりお手上げ状態です。 クエリの抽出条件について、どなたかご教授いただけますでしょうか? OS:XP ACCESS:2000 ・フォーム上に自由に入力できるテキストを3つ用意します。 ・入力された3つのテキストが1つのフィールドに含まれるものをクエリで抽出したい。 ・3つのテキストが空欄の場合は全てのデータを抽出したい。 ■フォーム上のテキスト  テキスト1:テキスト10  テキスト2:テスト11  テキスト3:テスト12 ■テーブル  フィールド1:問合せ内容(1) ■クエリ内の抽出条件 Like "*" & [Forms]![F_検索テスト]![テキスト10] & "*" And Like "*" & [Forms]![F_検索テスト]![テスト11] & "*" And Like "*" & [Forms]![F_検索テスト]![テスト12] & "*" テキスト名がおかしいのですが、ご了承下さい。

  • フリガナ検索について

    同じような質問があったらすみません。 過去質問も見ましたが、あまりよく理解できなかったので質問させていただきます。 顧客名簿のフリガナ検索をしたいのです。 テーブルには顧客情報に必要な、名前 フリガナ 住所 電話番号 とあり、フォームもそのテーブルを元に作成しています。 そして、そのフォームにテキストボックスをつくり、コマンドボタンで 実行をしたいのです。表示方法はフォームで・・・・。 例えば「サトウ」とテキストボックスに入力し、コマンドボタンを押すごとに、「サトウ」の苗字の人がフォームで次々と表示されるようなのが理想です。 お時間があるときに、教えていただけないでしょうか? 宜しくお願い致します。

  • Access 別フィールドのフリガナでソートした結果表示

    まだAccess初心者です。単純な質問かもしれませんがお許しください。 WindowsXP, Access2003S SP2です フォームに表示してある名前のもつフリガナフィールドでソートしてその結果をテキストで以下のように並べたいのですがやりかたがわかりません。 ------フォーム------- A 佐藤 B 田中 C 今井 --------------------- (A,B,Cはコントロールソースで名前は集合ソースから選択するプルダウンです) それぞれ漢字の名前はフリガナフィールドを持っています。 ボタンを押したときに テキストとして 今井 C 佐藤 A 田中 B と出力したいのですが、、、 スミマセン、おわかりの方ご返答お願いします。 必要事項が抜けていたり質問の仕方がまずかったらスミマセン。 先輩方宜しくお願いします。

  • 別シートからデータ抽出し複数行に入力するには

    はじめまして、エクセル初心者ですがよろしくお願いします。 データシートから入力シートにグループを入力すると複数行同時に入力されるようにするにはどのようにすればよいでしょうか、データシートはこんな感じです。 Aグループ Bコード C名前  Dかな ・・・・・ 1  A-1   101   田中  たなか ・・・・・・ 2       102   佐藤  さとう ・・・・・・ 3       103   太田  おおた ・・・・・・ 4  A-2   104   上田  うえだ ・・・・・・ 5       105   田中  たなか ・・・・・・ とあり、グループは60以上ありグループは3人一組なのでセルを統合しています。 抽出シートは Aグループ Bコード C名前  Dかな 1 2 3 グループのセルは3行を1つに統合してます。ランダムにグループコードを入れるとBのコードとC、Dが同時に入力される方法というのがあるのでしょうか。分かりにくい質問かもしれませんがよろしくお願いします。

  • AccessのLikeの使用について

    こんにちは。 Accessでクエリなどに条件を設定する時、 Like [Forms]![フォームの名前]![テキストボックスの名前] と設定するのと、 [Forms]![フォームの名前]![テキストボックスの名前] とでは意味が違ってくるのでしょうか。 Likeの使い方がいまいち解っていません。 わかりにくい文章で申し訳ありませんが教えてください。 よろしくお願いします。

専門家に質問してみよう