• ベストアンサー
  • 暇なときにでも

2段階の絞込み

クエリ-を使って作業日と作業者の2つを絞り込んでフォームに 表示させようとしています。 作業者の抽出条件はForms![フォーム名]![テキストボックス名]にして 作業日も同じようにForms![フォーム名]![テキストボックス名]すると 作業日と作業者がきちんと表示されました。 これだと1レコードのみの表示になってしまうので「1人の作業者が200204月に作業した日全部」を表示するには作業日の抽出条件をどのように入力したらいいのでしょうか? いろいろやってみたんですが出来ませんでした。 このやりかただと出来ないのでしょうか? すみませんがよろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数158
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • maruru01
  • ベストアンサー率51% (1179/2272)

こんにちは。maruru01です。 期間指定のBETWEENを使用する方法(WHERE句のみ)。 WHERE (作業者 = 'A') AND (作業日 BETWEEN #2002/4/1# AND #2002/4/30#)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

明日にでもちょっとやってみます。 また質問なんですけど#ってどんな意味があるんですか?

その他の回答 (4)

  • 回答No.5
  • O_cyan
  • ベストアンサー率59% (745/1260)

Like "200204*"を使用するか Left関数 を使用して Left([作業日],6)="200204" 上記の抽出条件をクエリに記述すればそのフィールドの値が左から6桁が200204の レコードを全て抽出できます。 (テキストの値に対してです。)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

Left関数ですか? ほぇ~いろいろな方法があるんですねぇ! 勉強になります。 ありがとうございました。

  • 回答No.4
  • maruru01
  • ベストアンサー率51% (1179/2272)

>また質問なんですけど#ってどんな意味があるんですか? #で括ることで、その間の文字列を日付文字列として認識します。 フィールドが日付型の場合は、#で括らないと、検索出来ません。 >因みにあいまい検索っぽくは出来ないんでしょうか? あいまい検索は、あくまで文字列に対するものです。 "200204*" というのは2002年4月の全てということではなく、"200204"という6文字で始まる文字列を検索するということです。 従って、この場合は、作業日フィールドのデータ型が文字列で、"20020401"のような形の入力になってなければいけません。(日付の区切り記号の"/"も入っていてはいけません。) この条件をクリアしていれば、 作業日 LIKE '200204*' のようなあいまい検索が使用出来ます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

なんどもすみません。 作業日フィールドは文字列なんでさっそくやってみます。 ありがとうございました。

  • 回答No.3
  • O_cyan
  • ベストアンサー率59% (745/1260)

作業日がDate型であればmaruru01さんの回答で良いと思います。 作業日がテキスト型であれば範囲の指示のところを BETWEEN "20020401" AND "20020430"に変えてください。 例えばAccessのクエリであれば作業日のフィールドの抽出条件に Date型であればBETWEEN #2002/4/1# AND #2002/4/30# テキスト型であればBETWEEN "20020401" AND "20020430" で抽出が出来ます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。 因みにあいまい検索っぽくは出来ないんでしょうか?

  • 回答No.1
  • osamuy
  • ベストアンサー率42% (1231/2878)

作業日を日付/時刻型として、 select * from T where T.作業者 = 'A' and T.作業日>= #2002/4/1# and T.作業日 < #2002/5/1#; とか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

す・すいません・・・ 質問のしかたがよくありませんでした。 できればあいまい検索みたいなかんじで出来ないでしょうか? たとえば200204*みたいな感じでフォームに入力すると200204月分のデータが 表示されるような?

関連するQ&A

  • フォームに表示したいんですが・・・

    複数の人数の作業時間を入力するフォームを作成しました。 誤って入力したものをフォーム上で訂正したいので非連結のテキストボックスを 2つ作成しクエリーの「作業日」と「社員番号」のフィールドの抽出条件をforms![フォーム名]![テキストボックス名]としました。 フォームの2つのテキストボックスに「日付」と「社員番号」を入力すると1レコードが表示されました。 間違いを探すのに1日1日入力するのは手間なので、例えばAさんの1年分の レコードから1月1日から1月31までの31レコードをフォームに表示させるにはどうすればよいのでしょうか? いろいろやってみたんですがうまく出来ませんでした。 うまく説明できませんがよろしくお願いいたします。

  • (access )任意の数字以上でクエリ抽出したい

    フォーム上にテキストボックスと、サブフォームのクエリを配置しております テキストボックス(textbox1)に数字を入力し、その数字以上のフィールドを抽出したいのですが、上手く行きません 現在クエリの抽出条件に以下の式を入力していますが、レコードが一切表示されません。 (抽出はできますが) >=([Forms]![フォーム名]![textbox1]) どなたかご教授お願い致します

  • Accessであいまい検索するフォームをつくってみたんですが?

    Accessの初心者です。 本などをみながらあいまい検索ができるようなフォームをつくってみましたがフォームを開いた時、全レコードが表示されてしまいます。 クエリーの抽出条件はLike "*" & Forms!フォーム1!テキスト0 & "*"にしてテキストボックスプロパティの更新後処理でDoCmd.Requeryとしました。(意味がよくわからないんですけど) フォームを開いた時やテキストボックスになにも入力されていない時、全レコードが表示されないようにするにはどうすればいいのでしょうか? よろしくお願いします。

  • フォームからクエリの抽出期間を指定するにあたって

    フォームのテキストボックス(開始日付,終了日付)に入力された期間内の レコードをクエリで抽出するために、以下のような抽出条件を設定しています。 Between [Forms]![フォーム1]![from date] And [Forms]![フォーム1]![終了日付] ここまでは問題なく出来ています。 ですが、例えばテキストボックスに何も入力していないときに、 全ての期間から全件表示させるような方法はありませんでしょうか? IIf(IsNull([Forms]![フォーム1]![開始日付]),True,~ というような形で、IIfとIsNullの組み合わせも考えたのですが、 日付は直接フィールドでは無く抽出条件のため、 Trueより後が設定できずに悩んでおります。 出来ればVBAは使いたくないのですが、 何か良い方法はありませんでしょうか?

  • ACCESEのビルドの使い方について

    フォームでテキストボックスを2つ作成して、 そのテキストに入力した条件を抽出させるようなことを やりたいのですが、クエリの抽出条件を入れられるところに ビルドで作成すると思いますが.. (テキストボックスごとにフィールドは違うのを見るようにしてます) データ抽出するクエリの作成方法(ビルド)で、 テキストボックスに入力されていない場合、 下記のような構文になると思います。 iif(isnull(forms!フォーム1!date1),,) iif(isnull(forms!フォーム1!date2),,) 上記の処理で、NULL(または入力なし)だった場合、 テキストボックスのクエリの該当フィールドに 作成した抽出条件を無視をするような処理をいれたいのですが、 テキストに入力して抽出してみると 何も抽出できなくて困ってます。 参考になるURLがあったら教えてください

  • アクセスで任意の件数を抽出するクエリでお知恵をお貸し下さい!

    アクセス初心者です。 Win XP Access2002 フォーム上にあるテキストボックスに任意の数値を入力しておき、入力した任意の数分のレコードを抽出してくるクエリを組みたいのですが、知恵が不足して出来ません。 SQLでselect top [Forms]![フォーム名]![テキストボックス名] など試してみたのですがダメでした。 どなたかお知恵をお貸し下さい。 できれば、SQL分でやるよりクエリの抽出条件の式でできればとも思っております。 宜しくお願いします。

  • フォーム上での絞り込みについて

    フォーム上での絞り込みについて 皆様、こんにちは。アクセス初心者です。 フォーム上での絞り込みを設定したいのですが、絞り込みのテキストボックスに データを入力してもQueryのデータが反映されません。 (1)クエリに[forms]![フォーム名]![絞り込みのテキストボックス名]と入力 (2)フォームのレコードソースへ上記のクエリ名、かつ絞り込みのテキストの更新後処理 DoCmd.Requery と記載しています。 この設定で他に何が足りないのかわからずここ何日か前に進めません。 大変初歩的な質問で恐れ入りますが、どなたかご教示いただけませんでしょうか? 何卒、よろしくお願いいたします。

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • Accessのテキストボックスとコンボボックスの違い

    フォームにテキストボックスを3ケ用意し、テキストボックス名をtxt1,txt2,txt3としました。これにコマンドスイッチを作成し、機能を再クエリと設定しました。 フォームのサブフォームに再クエリの結果を表示するようにしました。 クエリのテキストボックス1の抽出条件は 条件  [Forms]![フォーム名]![txt1] または [Forms]![フォーム名]![txt1] Is Null    [Forms]![フォーム名]![txt1] Is Null テキストボックス2の抽出条件は 条件  [Forms]![フォーム名]![txt2] Is Null または [Forms]![フォーム名]![txt2]  [Forms]![フォーム名]![txt2] Is Null テキストボックス3の抽出条件は 条件  [Forms]![フォーム名]![txt3] Is Null または [Forms]![フォーム名]![txt3] Is Null [Forms]![フォーム名]![txt3] と設定し、テキストボックスにデータを入力し実行すると 正しい結果が得られるのですが、テキストボックスをコンボボックスに変更し、コンボボックス名をtxt1,txt2,txt3 とすると、抽出されません。 コンボボックスをテキストボックスのように扱うのには どうするのでしょうか。教えてください。

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

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