アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちわ。アクセス初心者です。まず順に追って説明します。

(1)15000件ある顧客名簿と1500件ある担当会社のテーブルをリレーションで結び、クエリを組みました。「Q_顧客名簿」と名づけました。その時点で15000件データが存在します。

(2)フォーム「Q_顧客名簿」を元にフォームを作成しました。そして氏名の曖昧検索をしたいのでまずフォームのテキストボックスに「氏名検索」と名づけて、クエリの画面に戻り「Q_顧客名簿」を元に新たなクエリを組み、「氏名」のフィールドの抽出方法に以下のような文を入れました。

『Like "*" & [forms]![集合フォーム_1]![氏名検索] & "*"』
このクエリを「Q_氏名検索」と名づけました。

(3)フォームの左端をに「Q_氏名検索」が生きるよう設定をし、「氏名検索」のテキストボックスに「再クエリ」を組んだのですが、顧客データ数が15000あるはずなのが11000まで減ってしまいました。

おそらく検索式に何かが足りないのだと思うのですが、SQLやVBAがわからないのでどうすればいいかわかりません。
アクセスの詳しい方、教えていただけませんでしょうか?よろしくお願いいたします。

A 回答 (1件)

ん~、氏名に値が入っていない(NULLになっている)ものが4000件ほどあるんじゃないでしょうか。


例えば、「Q_氏名検索」の氏名の列の「または」の項目に
IS NULL
って記述すると、15000件選択されるようにはならないでしょうか?

もしこれに該当するようでしたら… 効率のよい形で検索機能を実現するのは多少骨が折れるかもしれません。
[集合フォーム_1]![氏名検索] に検索条件が入力されているかどうかで判断して、
A:入力されていなければ、NULLも検索対象に含める
B:入力されていれば、NULLは検索対象に入らない
というような処理が必要になってきます。


15000件程度でしたら、場合によっては効率が悪いけど楽な方法が許されるかもしれません。

1:氏名に対する抽出条件を削除する
2:「Q_氏名検索」に、「Nz([氏名])」というフィールドを追加し、非表示に設定する。
3:追加したフィールドに対して抽出条件を設定する。
(Like "*" & [forms]![集合フォーム_1]![氏名検索] & "*"』 )
ってな感じにすれば、取りあえずは何とかなるかも。

私の推測が外れていた場合、骨折り損にもなりかねませんので、一旦ここで筆を置きますが、もし効率のいいほうの解もご入用でしたら補足にでもその旨お書きくださいませ。再回答しますんで。

この回答への補足

回答ありがとうございます。「Q_氏名検索」で空白が入っいます。「または」のところに「Is Null」を入力したら件数が15000件出てきました。ありがとうございました!

補足日時:2003/12/09 11:28
    • good
    • 0
この回答へのお礼

アクセスは未知の世界なのでいろいろ試してみたいと思います。ARC様本当にありがとうございました。

お礼日時:2003/12/09 11:48

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