最新閲覧日:

あるフォームで選択・入力された値から抽出を行うようなクエリを作成しました。
空欄でもきちんと抽出されるようにと、下記のようなものを記入しました。

IIf(IsNull([Forms]![検索結果]![rank]),True,[ランク] Like [Forms]![検索結果]![rank])

ですが、実行を行う(空欄で実行)と、「式が複雑すぎです」とエラーがでてしまいます。
実際の値を入力すると、何も抽出されません。

どこが違うのでしょうか?
よろしくお願いします。

A 回答 (4件)

ヘッダー部分で何を検索するか入力し、結果を明細部分に表示するように


しているのでしょうか?

やったことが無いのでできるかどうかわかりません。
私は、検索データを入力するフォームと、検索結果を表示するフォームを
別にしています。

入力するフォーム
検索に使うクエリー
検索に使うクエリーを使用して結果を表示するフォーム
※入力するフォームに「検索」という名前のボタンを作り、このボタンを押すと
検索結果を表示するフォームを開くようにマクロで設定しています。
    • good
    • 0
この回答へのお礼

検索するフォームと表示するフォームを別にするようにしました。
ついでに?レポートでも表示させるようにしました。
おかげでうまく表示させることができました。
何回も質問にお答えくださって本当にありがとうございました。
お世話になりましたm(__)m

お礼日時:2001/12/26 14:20

>フォームで「氏名検索」のところに「田中」と押しても、検索されません。



「氏名検索表示用」に「氏名検索」に入力したデータが反映されているか
確認してください。

検索結果をフォームを使い表示させているのでしょうか?
フォームで使われているクエリーが正しいクエリーか
Like '*' & [Forms]![検索結果フォーム]![名前検索表示用] & '*'
抽出条件にこの条件が書かれているか確認してください。

この回答への補足

はい、きちんと表示されています。

氏名検索に「田中」と入力すると「氏名検索表示用」にも「田中」と表示されます。
(それ以前は「*」となっています。)

検索結果はフォームで表示させています。
「詳細」部分に通常のフィールドを表示し、「フォームヘッダー」に「氏名検索」や「氏名検索表示用」を表示させています。

補足日時:2001/12/26 13:13
    • good
    • 0

「氏名検索」「氏名検索表示用」共にテキストボックスのプロパティの


名前の所がこの名前になってますでしょうか。

Likeのこの検索方法は、元のテーブルがNullでは通用しません。
Nullではなく、空白なら大丈夫だったと思うのですが・・・

あまりお薦めできないのですが、Nullの変わりに空白を入れても
大丈夫でしたら、テーブルの氏名がNullの場合空白にするという
更新クエリーを作り、入力後や変更の後にこの更新クエリーが動くように
しておくと、検索はこのLikeの検索で大丈夫だと思います。

この回答への補足

再度回答ありがとうございます。

> 「氏名検索」「氏名検索表示用」共にテキストボックスのプロパティの
名前の所がこの名前になってますでしょうか。

はい、なっています。

スペースでも大丈夫だと思うのでちょっとチャレンジしてみます。
ありがとうございました。

補足日時:2001/12/25 14:57
    • good
    • 0

フォームでテキストボックスを2つ作り、一つは入力用(「担当者」)


もう一つのテキストボックスのコントロールソースに次のように入力します。
=IIf(IsNull([担当者]) Or IsEmpty([担当者]),"*",[担当者])
(これが入力されたテキストボックスの名前は「担当者1」とします)

検索クエリーのほうは、Likeの検索だけにします。
Like '*' & [forms]![検索]![担当者1] & '*'
手間はかかるかもしれませんが一応これでもできますよ。

この回答への補足

フォームで入力用のものとして「氏名検索」、もうひとつを「氏名検索表示用」としました。
「氏名検索表示用」の方のコントロールソースに
=IIf(IsNull([名前検索]) Or IsEmpty([名前検索]),"*",[名前検索])
としました。

検索クエリーの方で、「氏名」のところに
Like '*' & [Forms]![検索結果フォーム]![名前検索表示用] & '*'
としました。

クエリーの方でたとえとして「田中」と入力すると田中さんすべてが表示されます。
でもフォームで「氏名検索」のところに「田中」と押しても、検索されません。
(フォームにコマンドボタンを作成し、フォームフィルタの実行を行うようにしてあります。)

またクエリーでもそうですが、何も入力しないと、表示されるのが、「氏名」に何かしら文字が入っている人のみになってしまうのです。
名前が空白の人もいるので、空白の人も表示させたいのです。

何かよい解決法はありますか?
よろしくお願いします。

補足日時:2001/12/25 13:28
    • good
    • 0

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


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ