激凹みから立ち直る方法

Accessを利用して住所録のデータベースを作成しています。パラメータークエリを利用して複数の項目の検索結果をフォーム上に表示させたいのですが上手くいきません。

フリガナと勤務先の二つのフィールドを利用して検索結果を表示したいのですが,
・フリガナだけに条件を入力した場合
・勤務先だけに条件を入力した場合
・フリガナと勤務先の両方に条件を入力した場合
の3つのパターンを想定しています。

例えば,フリガナと勤務先の両方の検索結果を表示させる場合,フリガナフィールドの抽出条件に
Like [フリガナを入力] & "%"
勤務先フィールドの抽出条件に
Like [勤務先を入力] & "%" Or Is Null
と入力すると,フリガナと勤務先の両方に検索条件を入力した場合,
・フリガナが該当し,かつ勤務先が該当するデータ
のほかに
・フリガナが該当し,勤務先が空白のデータ
が抽出されます。フリガナと勤務先の両方に検索条件をいれたときには,勤務先が空白のデータを抽出しないようにしたいのですが,どうしたら良いでしょうか。フリガナだけで検索するときには,勤務先が空白かどうかは考慮しない結果を表示させたいと思います。

ちなみに,
フリガナフィールドの抽出条件に
Like [フリガナを入力] & "%"
勤務先フィールドの抽出条件に
Like [勤務先を入力] & "%"
とすると,勤務先だけで検索したい場合に,勤務先の記載がない人のデータが出てこなくなってしまいます。

初心者ですが,よろしくお願いいたします。

A 回答 (2件)

<住所録>


ID___氏名_________フリガナ___________勤務先
1____鈴木 健一__スズキ ケンイチ__新日本商事
2____中村 主水__ナカムラ モンド___新日本商事
3____山田 太郎__ヤマダ タロウ_____

<クエリ1>
SELECT 住所録.ID, 住所録.氏名, 住所録.フリガナ, 住所録.勤務先, [フリガナ] & "," & [勤務先] AS 検索スペル
FROM 住所録
WHERE ((([フリガナ] & "," & [勤務先]) Like [検索スペルを入力して下さい]));

2度も入力させるのはユーザは歓迎しないでしょう。

[スズキ*,新日本*] or [スズキ%,新日本%]
[*,新日本*] or [%,新日本%]

とコンマ(,)で区切って2つの条件を入力させたらどうですか?

しかし、フォームに表示するのであれば、フォームに2つの条件を入力するテキストボックスを配置した方が・・・。
    • good
    • 0
この回答へのお礼

できました!ありがとうございました。
おっしゃるとおり,フォームにテキストボックスを配置した方が使い勝手は良いと思いますが,このクエリを利用してデータクセスページを作成し,イントラネットで使用するため,フォームを使用することができません(もしかして,出来るのかもしれませんが,その方法は分かりません)。

お礼日時:2007/11/05 15:02

>勤務先の記載がない


場合
>Like [勤務先を入力] & "%"

Like "%"
となります
これは文字列に対する抽出条件ですからNullはヒットしません

>フリガナだけで検索するときには,
>勤務先が空白かどうかは考慮しない結果を表示させたいと思います。
こうするには
Like [勤務先を入力] & "%" or [勤務先を入力] is null
    • good
    • 0
この回答へのお礼

丁寧なご説明をありがとうございました。

お礼日時:2007/11/07 14:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!