• 締切済み

ACCESS2000の複数検索条件からのデータ抽出

こんにちわ。前回質問内容自体どう説明してよいかわからず、途中で終わってしまったので、再度、詳しく質問してみました。 今、Accessで受注管理を作成しているんですが、複数の検索について教えて下さい。 ■テーブル テーブル名:受注管理 フィールド名:受注ID・日付・商品種別・顧客名・仕入種別・状況種別 ■クエリ クエリ名:受注クエリ(フィルタ) フィールド名:受注ID(表示チェックあり)・日付・商品種別・顧客名・仕入種別・状況種別 と式1[Forms]![検索フォーム名]![日付text]・式2[Forms]![検索フォーム名]![商品種別combo]・式3[Forms]![検索フォーム名]![顧客名text]・式4[Forms]![検索フォーム名]![仕入種別list]・式5 [Forms]![検索フォーム名]![状況種別combo]の計11列です。 抽出条件:検索名フィールド: 受注IDを除く各フィールド名の下に Like "*" & [Forms]![検索フォーム]![日付text] & "*" Like [Forms]![ 検索フォーム名]![商品種別combo] Like "*" & [Forms]![ 検索フォーム名]![顧客名text] & "*" Like [Forms]![ 検索フォーム名]![仕入種別list] Like [Forms]![ 検索フォーム名]![状況種別combo] 各式の下に Like "" Like "(なし)"      Like "" Like "(なし)" Like "(なし)" を検索パターンに応じて入力しました。 マクロにより、フィルタの実行をしていますが、この方法だと4つまでなら、検索可能なのですが、5つ以上になると、「フィルタが長すぎます」というダイアログボックスがでて検索ができません。VBAやSQLはいまいちわからないので、何か簡単に、5つ以上の検索条件で検索できないでしょうか。お願いします。

みんなの回答

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

>上記のようにいれました結果、パラメータ入力はでなくなりましたが、抽出ができません。 商品種別combo,仕入種別list,状況種別comboは未選択の場合、"(なし)"になってますか? コンボボックスやリストボックスの表示は"(なし)"でも相対するコードがセットされているなら、 検索値はそのコードにならなければいけません。

spooker
質問者

補足

未選択の場合は"(なし)"になっています。後、お聞きしたいのですが、言われた方法でやりますと、5種類の検索条件があった場合、すべての検索パターンが可能なのでしょうか。例えば日付と商品種別のみ選択した場合とか5種類だとけっこうパターンがあると思うのですが。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

>変更して式1~4の列を削除するという意味でしょうか。 その通りです。式1~5を削除して、抽出条件を各1行に変更です。 Nz関数は、未入力の変数を数値の0または引数に置き換える関数です。 LIKE "***" は検索条件なしと同意になります。 >この方法で検索すると、パラメータ入力とでてしましますが・・・ クエリ実行時に[Forms]![ 検索フォーム名]は開いた状態になってますか? またパラーメータを入力しろとでたフィールド名に間違いはありませんか?

spooker
質問者

補足

フィールド→受注ID|日付|商品種別|顧客名|仕入種別|状況種別| 表示     レ(チェック) 抽出条件 →   |1 |2   |3  |4   |5   | 1)Like "*" & Nz([Forms]![検索フォーム]![日付text],"*") & "*" 2)Nz([Forms]![ 検索フォーム名]![商品種別combo],"(なし)") 3)Like "*" & NZ([Forms]![ 検索フォーム名]![顧客名text],"*") & "*" 4)Nz([Forms]![ 検索フォーム名]![仕入種別list],"(なし)") 5)Nz([Forms]![ 検索フォーム名]![状況種別combo],"(なし)") 上記のようにいれました結果、パラメータ入力はでなくなりましたが、抽出ができません。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

Like "*" & Nz([Forms]![検索フォーム]![日付text],"*") & "*" Nz([Forms]![ 検索フォーム名]![商品種別combo],"(なし)") Like "*" & NZ([Forms]![ 検索フォーム名]![顧客名text],"*") & "*" Nz([Forms]![ 検索フォーム名]![仕入種別list],"(なし)") Nz([Forms]![ 検索フォーム名]![状況種別combo],"(なし)") では駄目でしょうか?

spooker
質問者

補足

回答ありがとうございます。 さっそくですが、 Like "*" & [Forms]![検索フォーム]![日付text] & "*" Like [Forms]![ 検索フォーム名]![商品種別combo] Like "*" & [Forms]![ 検索フォーム名]![顧客名text] & "*" Like [Forms]![ 検索フォーム名]![仕入種別list] Like [Forms]![ 検索フォーム名]![状況種別combo] を Like "*" & Nz([Forms]![検索フォーム]![日付text],"*") & "*" Nz([Forms]![ 検索フォーム名]![商品種別combo],"(なし)") Like "*" & NZ([Forms]![ 検索フォーム名]![顧客名text],"*") & "*" Nz([Forms]![ 検索フォーム名]![仕入種別list],"(なし)") Nz([Forms]![ 検索フォーム名]![状況種別combo],"(なし)") に変更して式1~4の列を削除するという意味でしょうか。 この方法で検索すると、パラメータ入力とでてしましますが・・・ よろしくお願いします。

関連するQ&A

  • Access2000 抽出について

    どうしてもわからないので教えてください。 選択クエリで、「フリガナ」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![カナ検索]),"*",[Forms]![F_顧客検索]![カナ検索] & "*") でフォームからクエリを実行させるようにしているのですが、 フリガナが空白のレコードは抽出されてくれません。 「*」でなく、なんと入れればいいのでしょうか? ちなみに他に、「自宅電話番号」というフィールドに、 Like IIf(IsNull([Forms]![F_顧客検索]![電話検索]),"*" & "*",[Forms]![F_顧客検索]![電話検索] & "*") など、似たような感じで抽出をかけています。 よろしくお願いします。

  • ACCESS2000で検索値空白時の抽出

    ACCESS2000で質問です。 顧客データベースがあります。 シリアルと登録名で検索をかけて、どちらかでヒット、又は両方ANDでヒットしたものをクエリで抽出したいです。以下の条件式はクエリの抽出条件の同じ行に入れています。データベースのうち、シリアルと登録名が両方入力されているものは問題なくヒットするのですが、どちらかが空欄のものがヒットしません。どちらかが空欄のものもヒットさせ、フォーム[検索]で何も入力しないでクエリを開いた時は全レコードを表示するようにしたいのですが、どのような式を書けばよいのでしょうか。宜しくお願いいたします。 Like "*" & [Forms]![検索].[登録者] & "*" Like "*" & [Forms]![検索].[シリアル] & "*"

  • Access2000で複数の検索項目を作りたいのですが・・・

    こんにちわ。 今、Accessで社員録を作成しているんですが、複数の検索について教えて下さい。 ■テーブル テーブル名:社員録 フィールド名:ID・検索名・氏名・所属ID・所属 ■クエリ クエリ名:社員録クエリ フィールド名:ID・検索名・氏名・所属ID・所属 検索名抽出条件:検索名フィールド: Like [Forms]![社員録 縦]![けんさく]         所属フィールド: Like [Forms]![社員録 縦]![抽出検索名] ■フォーム フォーム名:社員録フォーム:テキスト1・テキスト2・ボタン1       社員録サブフォーム:データソース:社員録クエリ テキスト1:所属を入力 テキスト2:検索名を入力 ボタン1:マクロの再クエリを実行する ■ここからが質問です■ (1)テキスト1又は、2が空白のとき社員録全体から検索かフィルタ。 (2)テキスト1・2が、入力されてる時、両条件から検索かフィルタ。 をしたいのですが、何かいい方法がありましたら教えて下さい。 説明が、長くなってしまってスミマセン。。。

  • アクセスである文字を含む検索

    ACCESS2000を使っています。 あるデータテーブル「発注書テーブル」があって、ここでは「(1)ID」「(2)顧客名(法人)」「(3)発注商品」「(4)納品済チェック」の4つフィールドがあるとします。 作業はフォームで行います。フォーム名は「発注書フォーム」。 「(2)顧客名」から検索をかけたくて、検索コマンドボタンをつくり、「検索フォーム」を発注書フォームとまったく同じ形態でつくり、そこにとべるようにしました。 「検索フォーム」には「検索」というテキストボックスを作ります。 「検索クエリ」というクエリを作り、発注書テーブルを素とし、すべてをデザインビューで表示するようにしました。 そして、「(2)顧客名」の抽出条件に[Forms]![検索フォーム]![検索]を入力します。 すると、「検索フォーム」の「検索」をコンボボックスにして、顧客名をすべて表示させ選択した場合は、「検索フォーム」では、選択した顧客の情報が表示されるようになりました。 が、しかし、「検索」をコンボボックスではなく、テキストボックスで、しかも顧客名の一部だけを入力したら、その文字を含むすべてのレコードを表示してほしいのです。 そこで、「検索クエリ」の「(2)顧客名」抽出条件にlike"*[Forms]![検索フォーム]![検索]*"と入力してみました。 そして「検索フォーム」の「検索」テキストボックス(非連結)に顧客名の一部を入力したところ、ぜんぜん絞りこみ抽出してくれません。 もちろん、クエリ上でも絞り込んでいない模様です。 どうしたら文字の一部からその文字を含む顧客名のレコードを全て抽出し、表示させることができるでしょうか? 細かくてすみませんが、かなり困ってます。 どうかわかる方、教えてください。 まったくちがう方法(別の手法)でもかまいません。 この説明でわからない部分がありましたら補足しますのできいてください。 よろしくお願いします。

  • ACCESSでのクエリ抽出条件について

    ACCESS超初心者です。 自分なりに調べたのですが、知識不足によりお手上げ状態です。 クエリの抽出条件について、どなたかご教授いただけますでしょうか? OS:XP ACCESS:2000 ・フォーム上に自由に入力できるテキストを3つ用意します。 ・入力された3つのテキストが1つのフィールドに含まれるものをクエリで抽出したい。 ・3つのテキストが空欄の場合は全てのデータを抽出したい。 ■フォーム上のテキスト  テキスト1:テキスト10  テキスト2:テスト11  テキスト3:テスト12 ■テーブル  フィールド1:問合せ内容(1) ■クエリ内の抽出条件 Like "*" & [Forms]![F_検索テスト]![テキスト10] & "*" And Like "*" & [Forms]![F_検索テスト]![テスト11] & "*" And Like "*" & [Forms]![F_検索テスト]![テスト12] & "*" テキスト名がおかしいのですが、ご了承下さい。

  • ACCESSでの抽出について

    単純なクエリの抽出なのですが・・・。 区フィールド、町フィールドをクエリで作成して そのクエリを元に抽出フォームを作成しました。 そして、クエリの抽出条件に以下の式を入力しました。 Like "*" & [Forms]![F_抽出]![区] & "*" Like "*" & [Forms]![F_抽出]![町] & "*" しかし、大本のデータに [区]フィールド→品川区 [町]フィールド→空白 ・・・と、どちらかが空白の場合、そのレコード を抽出してくれません。 このように、空白フィールドを持つレコードをも 抽出するにはどのようにしたらようですか? 初歩的な質問で申し訳ありませんがよろしくお願いいたします。

  • アクセス 複数条件の抽出~出力について

    ■アクセスのフォームにて、複数の条件を入力し、合致するリストをエクセルで出力する   データベースを構築しようとしています。  ⇒この複数の条件を入力する件に関し質問です。 ■目的は、顧客からのアンケート回答結果をDBから取出し、エクセルにて解析を行う事です。  情報量が膨大であるため、セグメントした形で出力し効率を上げたいと考えています。 ○テーブルのフィールド構造:   支店(テキスト型)、顧客No(数値型)、顧客名(テキスト型)、質問1(数値型)、質問2、・・・   ○フォーム「データ抽出」の構造: [支店名1][支店名2] [顧客No1][顧客No2] [顧客名1][顧客名2]       【出力ボタン】 ※上記テキストボックスいずれかに入力された条件に合致するデータが          【出力ボタン】を押すとエクセルに出力されるという構造です。          ※ボタンのイベントに「抽出マクロ」を設定。 ○抽出クエリ: 支店 [Forms]![データ抽出]![支店名1]  Is Null [Forms]![データ抽出]![支店名2]  Is Null 顧客No [Forms]![データ抽出]![顧客No1]  Is Null [Forms]![データ抽出]![顧客No2]  Is Null 企業名 like "*" &[Forms]![データ抽出]![顧客名1]& "*" Is Null like "*" &[Forms]![データ抽出]![顧客名2]& "*" Is Null               ○マクロ(抽出マクロ):  クエリを開く (抽出クエリ)  コマンドの実行(エクセルに出力)  閉じる (抽出クエリ) と設定しました。そこで実行確認すると・・・・  (例)     (1)支店名1だけに入力して、他は空欄で出力ボタンを押下。     ⇒条件セグメントされず、全てのデータがエクセル出力されてしまう。     (2)全ての項目に入力して出力ボタンを押下     ⇒条件セグメントされたデータがエクセル出力される。  という現象が起こりました。  例示(2)は良いとして、(1)の様な空欄がある状態でも、条件にマッチした出力をしたいのですが上手くいいかず困っています。    尚、クエリの抽出条件を支店フィールドだけにした所・・ 支店  [Forms]![データ抽出]![支店名1]   Is Null  [Forms]![データ抽出]![支店名2]   Is Nul 支店名1に入力して支店名2は空欄であっても条件にマッチした出力結果が得られました。 長文恐縮でございますが、どなたか解決法をご教授いただきたく存じます。よろしくお願いいたします。

  • アクセスである文字を含む検索2

    先ほど同じタイトルで質問して、お答えいただいて、それで成功したかにみえたのですが、よくみたら、なぜかテーブルよりクエリの方が多い。おかしいなと思い、[顧客名テーブル]を作成し、 お答えいただいた以下の抽出条件に、 Like Iif(IsNull([Forms]![検索フォーム]![検索]),[顧客名テーブル]![顧客名],'*'&[Forms]![検索フォーム]![検索]&'*') としたら、 件数はきちんと表示されました。 しかし、今度は検索ボタンを押すときに「パラメータの入力」ダイアログが表示され、 [Forms]![検索フォーム]![検索]),1,Unknown と表示され、無視すると、きちんと検索できなくなってしまいました。 すみませんがどうしたら解消できるか、教えてください。 よろしくおねがいします。

  • フィールドのデータ型で検索結果に差が出る[2]

    正確にはフィールドのデータ型と検索条件「And・Or」の違いで検索結果に差が出るになります。 [アドバイス訴求の背景] 別件「フィールドのデータ型で検索結果に差が出る」でアドバイスをお願いして居りました者です「終了」。実は別の式もアドバイス頂いていた経緯があり、そちらで再度試してみたところメモ形でも「Or」条件であれば、正常に検索できることが確認できました。実は、アドバイスを頂いた記述を私が間違って設定していた為、別件の質問の通り「メモ形」は検索できていませんでした。本当に申し訳ございません。以上の経緯「私のプア」もあり、再度アドバイスをお願いすることに気も引けましたが、アドバイスを提供して下さった方に失礼であると思い投稿しました。 [気になっていること] クエリのパラメータ検索「複数パラメータ」に於いて、フィールドのデータ型が「メモ形」で「And」条件の時だけ検索できません。 1,データベースオブジェクト「簡略」 ・テーブル:世界情報 ・フォーム:世界情報フォーム ・フィールド名:情報   フィールドサイズ:メモ ・フォールド名:タイトル フィールドサイズ:200 ・世界情報クエリ1,2,3,4,「パラメーター(複数パラメータ表示)」 2,フィールド名「情報(メモ形)」を検索フィールドに指定「下記の式(Or)」した時は問題なく検索結果を返します。 Like "*" & [Forms]![情報]![検索1] Or Like "*" & [Forms]![情報]![検索2] Or Like "*" & [Forms]![情報]![検索3] & "*"(情報フィールドの抽出条件にのみ記載) 3,フィールド名「情報(メモ形)」を検索フィールドに指定「下記の式(And)」した時は全て「登録した情報はありません」を返します。 Like "*" & [Forms]![情報]![検索1] And Like "*" & [Forms]![情報]![検索2] And Like "*" & [Forms]![情報]![検索3] & "*"(情報フィールドの抽出条件にのみ記載) ※検索1と検索2にしても結果は同じでした。 4,その他 Like "*" & [Forms]![情報]![検索1] And Like "*" & [Forms]![情報]![検索2] And Like "*" & [Forms]![情報]![検索3] & "*" の式をクエリの記載場所が異なるので「式1: 」は付いていません。 以上ですが、宜しくお願いします。

  • ACCESS2000のクエリでワイルドカード検索したい

    ACCESS2000のクエリでフォームで入力した内容でワイルドカード検索しようと抽出条件に Like "|Forms![フォーム名]![フィールド名]|*"と指定しましたが、上手くいきません。 ACCESS2.0では、これで上手くいったのですがACCESS2000 では指定の仕方が違うのでしょうか? どなたか教えて下さい。

専門家に質問してみよう