• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DataViewで複数条件のフィルタのやり方)

DataViewで複数条件のフィルタのやり方

このQ&Aのポイント
  • Vb2005とACCESS2003の開発環境で、データテーブルのフィルタ処理をしたい。具体的には、ふりがなに基づいてあ行、か行などの条件で抽出を行いたいが、うまくいかない。式の書き方を教えて欲しい。
  • 現在のコードでは、フリガナがアで始まる人のみを抽出しているが、複数の条件をどのようにフィルタにかければ良いかわからない。ANDや&を試したがうまくいかない。
  • データテーブルのフィルタ処理で、ふりがなに基づいて複数の条件をかける方法を教えて欲しい。

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

  • ベストアンサー
  • ppg-2
  • ベストアンサー率39% (77/193)
回答No.2

失礼しました。勘違いしていましたね。 調べてみたらleft関数は使えないようですね。申し訳ありません。 代替関数のsubstringが使えそうなので、これでどうですか? dv.RowFilter = "substring(フリガナ,1,1) in ('ア','イ','ウ','エ','オ')" またLIKEを使うのであれば dv.RowFilter = "(フリガナ LIKE 'ア%') OR ("フリガナ LIKE 'イ%')・・・ とORでつなげれば可能だと思います。 ただパフォーマンスは最初の方がいいと思います。

nanacyanyo
質問者

お礼

こんにちは、再びの回答ありがとうございました。 教えていただいたコードで、フィルタをかけることができました。 悩んでいたのですっきりできてうれしいです。 「substring」関数というのを知らなかったのでwebで見てみました。勉強になりました。 LIKE関数のつなげ方も教えていただき、ありがとうございます。 パフォーマンスが「substring」の方が良いとのことなので、こちらを使わせていただきます。本当にありがとうございました。

その他の回答 (1)

  • ppg-2
  • ベストアンサー率39% (77/193)
回答No.1

>dv.RowFilter = "フリガナ LIKE 'ア%'" dv.RowFilter = "left(フリガナ,1) in ('ア','イ','ウ','エ','オ')" これではどうですか? ちなみにLIKEはア行を抽出するのではなく、アタマとかアサガオとか抽出するものです

nanacyanyo
質問者

お礼

ppg-2さま、回答ありがとうございました。 >dv.RowFilter = "left(フリガナ,1) in('ア','イ','ウ','エ','オ')" で実行したところ、「left」の部分で「式に定義されていない関数呼び出し left() が含まれています。」とエラーになってしまいます。 何か他に設定が必要でしょうか? 「LIKE」ですが、ア行を抽出しようとしたのではないです。アで始まるフリガナの人を抽出しようとしました。ア行を抽出するためにdv.RowFilter = "フリガナ LIKE 'ア%'"のあとに'イ%'や'ウ%'をANDなどでくっつけるのだろうか?と思っていました。わかりにくくてすみませんでした。 「Left」関数について調べてみます。

関連するQ&A