Q&A

回答の並べ替え:
投稿新規に質問を投稿する

DBから条件をつけて検索したいです。

TAKEDA TAKEDA

2020-07-20 14:37

フォーマット
検索条件

◆現状
・フォーマット上に、名前・性別・社員コードより検索できるボタンを作成しました。※1枚目画像参照
・アクションボタンDB検索条件※2枚目画像参照

◆実現したいこと
・検索ワード入力のセルに、名前・性別・社員コード全て入力されていなくてもいずれかひとつ、または複数入力があれば検索してくれる機能にしたいです。
(例:名前のワード検索で、「山」と入力し、検索ボタンを押すと、「山田」「山本」と検索結果がでて、名前&性別ワード検索で、「山」&「男」と入力すると男性の山田さんのみに絞り込んだ結果がでてほしいのです)
※1枚目画像の「フルネーム」はDB登録しておらず、関数で「氏」「名」を結合しているのみです。

2枚目画像の条件ですと、上記のような検索ができません。
どなたか、ご教授いただけませんでしょうか。
よろしくお願いいたします。

新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
メダルベストアンサー
2点か気になった点がありまして、情報共有させて頂きます。

1.[性別] で「次と一致する」を指定したいところですが、こちらを使用する事で、
  検索時に、[性別]をブランクで検索した場合に、テーブル内の[性別]がブランクの
  情報を探す為、ヒットしない状態となります。

  その為、部分一致検索となる「次を含む」とする事で、検索条件がブランクで
  あった場合は、当該項目を無視して検索してくれる為、
  「次と一致する」⇒「次を含む」を使って頂く必要があります。

2.[漢字姓] かつ [漢字名] かつ [性別] かつ [社員コード]
  となっておりますが、この記述方法の場合、検索値として”山”を指定した場合に、
  [漢字姓]・[漢字名]の両方に”山”を含まないとヒットしない事になります。

  その為、[漢字姓]・[漢字名] の間は、”かつ”ではなく、”または”にする必要が
  あります。
  ※”かつ”のままで実装する方法が、NCSさんのご提示されている検索値として
   姓・名を分ける方法となります。

  姓・名を分けずに実装する必要がある場合、多少複雑になりますが、
  以下の通り、変更する必要があります。
      [漢字姓] かつ [性別] かつ [社員コード]
  または [漢字名] かつ [性別] かつ [社員コード]

  ※[漢字姓] または [漢字名] かつ [性別] かつ [社員コード]とすれば
   よい様に思えますが、”または”・”かつ”については、記載の順序ではなく、
   ”かつ” ⇒ ”または” の順序に判定される為、上記の記載にする必要があります。

SQLアクションを使わずに、標準のデータ取得を使う場合については、
上記の方法になると思います。
「次と一致する」をどうしても使う必要がある場合については、
検索条件の入力有無によって、分岐条件(もし~ならば)をつかって、
2つのデータ取得を設定するしかないと思われます。

よろしくお願い致します。
メールコンタクトをとる
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
サンプル
こんにちは。
要件通りではないのですが、姓名を分けて条件検索することで実現は可能かと思います。
サンプルを作ったので簡単にご説明します。
・名前の検索フィールドを姓、名、に分けます。
・それぞれをテーブル列に紐付けます。
・その他のフィールドもすべて「次を含む」条件にします。
#SQLアクションを使えば氏名で検索できるかもしれませんが、試しておりません。
お役に立てれば幸いです。
メールコンタクトをとる