• ベストアンサー

where条件式であいまい検索がしたいです。

宜しくお願いします。 仕様環境:WinVISTA access2007 検索のやり方で戸惑っているのですが、 マクロを使って中にWhere条件式を書いています。 ちなみにこれです。↓ ・マクロ:フィルタの実行  [Forms]![メインフォーム]![番号検索]=[顧客番号] Or [Forms]![メインフォーム]![名前検索]=[名前] ・マクロ:再クエリ つまりテキストボックスに探したい顧客番号(「番号検索」というボックス)や、 名前(「名前検索」というボックス)を入れてコマンドボタンで検索をすれば、 「OR」を使っているので、どちらかに該当すれば検索できます(これはOKでした)。 またクエリとVBAは使っていません(VBAに関しては疎いので・汗) ここで質問なんですが、「名前」を検索する際に「完全一致」でないと検索できません。 これをlike~から始まるワイルドカードを使って「あいまい検索」にしたいのですが、 この条件式の中でどこを修正すればよいのでしょうか? いろんなところに入れて試したのですができません。 ちなみに[名前]の前後ともにあいまい(*)にしたいと思っています。 どうかお知恵をお貸しください、宜しくお願いします。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.3

横レス失礼致します。 > 「番号検索だけで検索をかけると検索ができない」(名前検索フィールドは空白で) とのことですが、ひょっとしてレコード全件が表示されている、という状況ではないでしょうか。 だとすると、それは正常な動作かと思います。 というのは、名前検索フィールドが空白だと、Orの後の条件文は   [名前] Like "**" という式になりますので、「名前が空白でないもの」を抽出していることになるからです。 (つまり、Or条件の一方が常に成り立つので、番号検索の値に関係なく全件を表示、と) 30246kikuさんの引用項のNo.4での私の引用項  http://oshiete1.goo.ne.jp/qa5108301.html のような、テキストボックスの入力状況による場合分けは、マクロでも可能です。 検索条件を指定するテキストボックスが空白のこともあり得る場合、結果的にこの方が 上記のような誤解をしにくくなりますし、通常、Orで複数の条件をつなげるよりも動作も 速くなりますので、よろしければ試してみて下さい。 ※マクロで「条件」列を表示させるには、マクロのデザインビューで『デザイン』リボンの   『表示/非表示』内の『条件』をオン(オレンジ表示)にします。 【マクロ1行目】 番号検索・名前検索とも空白の場合  条件: Len([Forms]![メインフォーム]![番号検索] & "")=0 And Len([Forms]![メインフォーム]![名前検索] & "")=0  アクション: コマンドの実行  コマンド: フィルタ/並べ替えの解除 【マクロ2行目】 名前検索のみ入力ありの場合  条件: Len([Forms]![メインフォーム]![番号検索] & "")=0 And Len([Forms]![メインフォーム]![名前検索] & "")>0  アクション: フィルタの実行  Where条件式: [名前]=[Forms]![メインフォーム]![名前検索] 【マクロ3行目】 番号検索のみ入力ありの場合  条件: Len([Forms]![メインフォーム]![番号検索] & "")>0 And Len([Forms]![メインフォーム]![名前検索] & "")=0  アクション: フィルタの実行  Where条件式: [顧客番号]=[Forms]![メインフォーム]![番号検索] 【マクロ4行目】 番号検索・名前検索とも入力ありの場合  条件: Len([Forms]![メインフォーム]![番号検索] & "")=0 And Len([Forms]![メインフォーム]![名前検索] & "")=0  アクション: フィルタの実行  Where条件式: [顧客番号]=[Forms]![メインフォーム]![番号検索] Or [名前]=[Forms]![メインフォーム]![名前検索]  ※顧客番号と名前の双方を満たすものを抽出する(→件数を絞り込む)場合は、   このWhere条件式の「Or」を「And」に書き換えます。

23tomo-u
質問者

補足

回答ありがとうございます。 おかげさまで丸写しで出来ました(苦笑) がんばって理解している最中です。 ついでに、名前の欄はあいまい検索にして、 またフィルタ実行時から、解除するためのリセットボタン (コマンドボタン)も設置し良好です。 LEN関数ですね、調べました。 「指定した文字列の長さを調べる」とのことで。。 つまり条件に顧客番号が空白だった場合とそうでない時をいれた訳ですね。 「=0」と「>0」で。勉強になりました。 申し訳ないですが、もう少しお伺いさせてください。 まず、この式の中で2つ聞きたいのですが・・、 ・マクロ1行目はどういう効果があるのですか? ・また条件の中に「& ""」という文章が入っていますが、これは何を表わしているのですか? 例えると、 Len([Forms]![メインフォーム]![番号検索] & "")=0 ですが、LEN関数で文字を指定してそれが0と一致する場合と読みとれますが、 &""の意味がどうしてもわかりません(純粋にわからないのです) もう一つ、恐縮なのですが僕の画像で、 番号検索に「001」と入力、 名前検索に「稲本 吾郎」と入力します。 これを同時に出す方法はあるのでしょうか? 画像が貼れないので、イメージだけでもこんな感じで。 (検索結果) 001 木山 拓哉 東京都 005 稲本 吾郎 山梨県 もし良ければご教示ください。 あ、あと最後に、30246kikuさんとDexMachinaさんで どっちに”良回答”をつければいいかわからないです(笑) (どっちとも参考&勉強になったので) 宜しくお願いします。

その他の回答 (5)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.6

No.3、DexMachinaです。 名前はあいまい検索にしていない、4行目はCopy&Pasteした後で「=0」を「>0」に修正する のを忘れてる、追加するつもりだったLen関数と「& ""」の説明はすっぽかす・・・ すみません、寝惚けてたか酔っ払ってたのか、というぐらい、ひどい回答でした(汗) (2番目(「=0 → >0」)を正しく記述していれば、「001 又は 稲本 吾郎」はきちんとできていたわけで・・・) 既に30246kikuさんが説明されていますが、若干の補足も交えてということで・・・ > ・マクロ1行目はどういう効果があるのですか? No.4で30246kikuさんからも「アクション:全レコードの表示 でも同じですか?」と 訊かれていますが、その通りで、[番号検索]や[名前検索]で一旦絞り込んだ後の 解除(全件表示)を意図したものです。 (「全レコードの表示」にしなかったのは、その存在を失念していたためです(汗)  動作に違いはなかったと記憶しています) > ・また条件の中に「& ""」という文章が入っていますが、これは何を表わしているのですか? [名前検索]の値がNullだった場合に、空文字(長さ0の文字列)に変換しています。 これは、Len関数の引数がNullだった場合、戻り値が0ではなくNullになってしまう (=「Len(~)=0」も「Len(~)>0」も不成立扱いになる)ことへの対策です。 http://oshiete1.goo.ne.jp/qa4850675.html​ 【追加情報1】   [名前] Like "*" & [Forms]![メインフォーム]![名前検索] & "*" の代わりに   [名前] Like [Forms]![メインフォーム]![名前検索] というように「"*"」を削除した上で「Like」を使用すると、「名前検索」欄にそれぞれ   「森」と入力  → 「森」での完全一致検索に、   「森*」と入力 → 「森田」「森山」等、「森」での先頭一致検索に、   「*森」と入力 → 「杉森」「三森」等、「森」での後方一致検索に、   「*森*」と入力→ 「森」「森田」「杉森」等、「森」でのあいまい検索に、 というような使い方もできますので、併せて参考まで。 (もっとも、これはユーザーが「*」の使い方を覚えるか、フォーム上に説明文を出して  おいてそれを見てもらう、といったことが必要になってしまいますが) 【追加情報2】 > VBAにも挑戦してみたいと思っています。 自分で組むなどして動作を理解したマクロがある場合、Accessの「マクロをVisual Basicに変換」を使用してみるのも、取っ掛かりとしてはいいかもしれません。 (VBAとして効率のいいコードにするには、そこから手を加える必要はありますが) Accessの画像左端で対象マクロを選択すると、『データベース ツール』リボンの 『マクロ』内の『マクロをVisual Basic に変換』ボタン(→添付画像の赤丸のボタン)が 有効になりますので、その状態でクリックすればVBAに変換されますので、試してみる のもいいかもしれません。 > どっちに”良回答”をつければいいかわからないです(笑) 個人的には気にしていますが、そこはどうぞご自由に(笑) 「気にしている」というのは、「わかりやすく簡潔な回答ができたか」ということへの ひとつの目安にしているから、ですので。 ・・・まあ、No.3のようなポカをやっているようではダメなんですけれどね・・・(汗)

23tomo-u
質問者

お礼

回答ありがとうございます。 「*森*」←これ僕も気になっていました。 何気にaccess2002スペシャリストを持っていて、 今度2007スペシャリストを受験する予定なのですが、 試験勉強するまでは、あいまい検索は「like "*" & ~」が 一般的なのかな、と思っていたのですが、 試験にはまさしく「*森*」が出てきます、「森*」とかも。 こんな簡単にあいまい検索ができるんだー、なんて思っていました。 マクロからの変換、そしてVBエディターからの作成は 最近覚えました。といってもmsgbox程度ですが(笑)。 徐々にって感じですね。 というか、すごい知恵を使いますね。 頭ひねりっぱなしです(笑)。 本来はもっとVBAとSQL文とかも覚えたいのですが、 なにぶん、時間がかかりそうなので、ゆっくり少しづつ覚えていければと 思っています。 で、良回答なんですが・・ まず、有り難いことにどちらも丁寧に回答して頂いたと思います。 「決定打とわかり易さ」ははDexMachinaさんですが、 「きっかけ」を作ってくれたのは30246kikuさんでした。 いろいろ悩むところですが、 後世(後から同じ相談で来た人のために)にこの質問を残す 意味でもDexMachinaさんにさせて頂きます。 といっても、30246kikuさんの答えが悪いというわけでもなく、 俊敏に回答をくださったので有り難いと思っています。 ということでまた次回もお時間がありましたら、 お付き合いをお願いします。 (ちなみにもうアップしましたが・・)

23tomo-u
質問者

補足

お礼を書いてからですが、一応気付いたことがあったので書きます。 Null値と空文字(長さが0の文字列)は違うんですね! 同じに考えていたー、というか気にしてなかったー(汗)。 眼から鱗です。(涙) 以上

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.5

#4です ポイント集めしているわけではないので、お好きなように 補足なり、お礼のところに、役に立ったのかくらい書いてもらえれば、 できれば、解決した内容を書いていただければと思っています。 私なりの解釈) > ・マクロ1行目はどういう効果があるのですか? ↓ > 解除するためのリセットボタン と同じことを、両方未入力で設定 > ・また条件の中に「& ""」という文章が入っていますが、これは何を表わしているのですか? > 例えると、 > Len([Forms]![メインフォーム]![番号検索] & "")=0 これを別の書き方すると Len(Nz([Forms]![メインフォーム]![番号検索],""))=0 で、[Forms]![メインフォーム]![番号検索] が未入力(Null値)の場合を判別する時の手法の一つ >(検索結果) > 001 木山 拓哉 東京都 > 005 稲本 吾郎 山梨県 は、 > おかげさまで丸写しで出来ました(苦笑) ということなので、マクロ4行目の条件で =0 の2か所を >0 に書き換えます。 実現するには1つの方法・書き方しかないということはない、と思っているので 書き方例) 説明上記述が長くなるので ※1 ~ ※4 を以下の記述と省略します。 ※1:Len(Nz([Forms]![メインフォーム]![番号検索],"")) ※2:[顧客番号]=[Forms]![メインフォーム]![番号検索] ※3:Len(Nz([Forms]![メインフォーム]![名前検索],"")) ※4:[名前] Like "*" & [Forms]![メインフォーム]![名前検索] & "*" 例1) 条件: ※1 =0 AND ※3 =0  アクション:コマンドの実行 コマンド:フィルタ/並べ替えの解除 条件: ※1 =0 AND ※3 >0  アクション:フィルタの実行 式: ※4 条件: ※1 >0 AND ※3 =0  アクション:フィルタの実行 式: ※2 条件: ※1 >0 AND ※3 >0  アクション:フィルタの実行 式: ※2 OR ※4 アクション:再クエリ 例2) 条件: ※1 >0 AND ※3 >0  アクション:フィルタの実行 式: ※2 OR ※4 条件: ...  アクション:再クエリ 条件: ...  アクション:マクロの中止 条件: ※1 >0   アクション:フィルタの実行 式: ※2 条件: ...  アクション:再クエリ 条件: ...  アクション:マクロの中止 条件: ※3 >0   アクション:フィルタの実行 式: ※4 条件: ...  アクション:再クエリ 条件: ...  アクション:マクロの中止 アクション:コマンドの実行 コマンド:フィルタ/並べ替えの解除 アクション:再クエリ 例1は、全部の条件をなめる?書き方 例2は、条件に合致するものを処理したらマクロを終わる完結的?書き方 条件に ... (ピリオド3つ)書けば、その条件を引き継いだ処理を記述できます。 条件には、順次絞り込んだ内容で記述できます。 (両方あったら→それぞれ片方→両方ない) だったと思います。

23tomo-u
質問者

お礼

回答有難うございます。 Nz関数を使ってこんなこともできるんですね! こんな使い方があったとは・・深いです・・。 あと、マクロの4行目の書き換えも成功しました。 他の書き方例も添えて頂きありがとうございました。 アイデアが全然足りないので、いろいろ勉強になります。 まだ質問したいこともありますので、 もしよろしければ、またお願いします。 (今度はマクロではできないかも) 有難うございました。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.4

#2です #2はそういう情報もあるということで、 ご質問に > ・マクロ:再クエリ されていたのを見落としてました。 補足で > 1回は検索ができたのですが、それ以後、番号検索だけの検索ができなく・・・ ばかりが頭に残っていて、 でも、そうすると1回検索できたっていうのが腑に落ちませんね。 私は即値に展開して指定するたちなので、VBAで書いてしまいます。 (デバッグし易いですし) これを機にVBAを覚えるってことはありませんか。 DexMachinaさんへ 何度か同席いただき心強いです。 マクロ1行目は、アクション:全レコードの表示 でも同じですか?

23tomo-u
質問者

補足

回答ありがとうございます。 詳細はDexMachinaさんにかかせて頂きました。 もし何かあれば、補足等お願いします。 VBA・・確かにスキル的にマクロだけではもしかすると厳しいのかなーと いうところまで来ている気がします。 ただ、ACCESSの機能だけで、どこまでできるかっていうのも やってみたいところであります。 今年は時間的に無理ですが、来年あたりから時間が出来たら、 VBAにも挑戦してみたいと思っています。 ただ、勉強の仕方というか書籍に書いてあるのも見ていて難しいですね(苦笑) 向き不向きもあるんでしょうが・・。 一応、「魔法使いの開発工房、VBA&マクロ編」を持っているのですが。。 msgbox位はVBAで出来るんですけどね(誰でもできるか) とりあえず、目下の悩みはどちらに良回答を つければいいかわからない状態です(笑)。 では、宜しくお願いします。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

私はマクロは使わずに、必要なのもだけを条件に即値を記述(VBAにて)することをやってます。 Access2007 のマクロでフィルタ指定する時の情報があるようです。 Access 2007 のフォームでフィルタを実行する場合、抽出結果にフィルタが反映されない http://support.microsoft.com/kb/941800/ja ※ あれを書いた後に見つけたんですけどね(その後検証はしてません)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

書き方の基本(たまに例外あり)ですが、 > [Forms]![メインフォーム]![番号検索]=[顧客番号] 何々に対して、何々を比較したい、とした場合、 [顧客番号]=[Forms]![メインフォーム]![番号検索] と書きます。 後は、= 部分を変更していきます。 [顧客番号]=[Forms]![メインフォーム]![番号検索] ↓文字列の比較へ [顧客番号] Like [Forms]![メインフォーム]![番号検索] ↓前後を曖昧に [顧客番号] Like "*" & [Forms]![メインフォーム]![番号検索] & "*" データに NULL が無いようですが、あった場合以下が参考になると思います。 http://oshiete1.goo.ne.jp/qa5180535.html

23tomo-u
質問者

補足

回答ありがとうございます。 早速参考にさせて頂き、条件式での「あいまい検索」が できるようになりました。 以下、条件式です。 [顧客番号]=[Forms]![メインフォーム]![番号検索] Or [名前] Like "*" & [Forms]![メインフォーム]![名前検索] & "*" が! 貼って下さったnull値のリンクの中に「1回だけできて~」というところがありましたが、 私も同じ現象が起きました。 解説致しますと、私の画像でいえば「番号検索」というフィールドに 番号を入れて「名前検索」というフィールドに何も入れない(空白)と 1回は検索ができたのですが、それ以後、番号検索だけの検索ができなくなりました。 つまり上記の条件式にすると・・ 「名前検索(あいまい)だけで検索をかけると検索できる」(番号検索フィールドは空白で) 「番号検索と名前検索ともに入力すると検索ができる」 「番号検索だけで検索をかけると検索ができない」(名前検索フィールドは空白で) という状況になりました、、謎です。 またエラー等は発生していません。 どちらか一方、または両方に検索条件が入っている場合に検索ができる、 という意味で「Or」を使ったのですが、うまくいきません。 とりあえず、もうちょっと勉強してみます。 何か、お解りになられることがありましたらご教示ください。 (貴重なお時間を割いてご迷惑をかけてしまうのもなんなんでなくても結構です) 宜しくお願いします。

関連するQ&A

  • ACCESS マクロでWhere条件式について質問

    マクロについてですが、「アクションを開く」アクションで引数のWhere条件式について質問です。 やりたいことは、フォームA・フォームBがあり、共通のフィールド"顧客ID"があります。この二つのフォームを連動させて並行に表示させたいと思います。 マクロに登録する内容は、 アクション「フォームを開く」 引数(フォーム名)フォームA   (Where条件式)[Forms]![フォームA]![顧客ID]=[Forms]![フォームB]![顧客ID] アクション「オブジェクトの選択」 引数(オブジェクトの種類)フォーム  (オブジェクト名)フォームB 上のように(Where条件式)で[Forms]![フォームA]![顧客ID]]=[Forms]![フォームB]![顧客ID] とすると、レコードは何も表示されませんでした。 しかし、[顧客ID]=[Forms]![フォームB]![顧客ID]とすると正しく表示します。なぜ、[Forms]![フォームA]![顧客ID]]=[Forms]![フォームB]![顧客ID]とすると、ダメなのでしょうか??

  • Accessのwhere条件式について教えて下さい

    初歩的内容の質問ですみません。 Access初心者のため色々施行錯誤しながらやっているのですが、 行き詰まりました。 「フォームを開く」でWhere条件式の設定がうまくいきません。 フォームAにボタンをクリック時フォームを開くを設定しました。 開くフォームはフォームBです。 共通のフィールドの"顧客ID"でフォームを連動させてたいのですが、 where条件式に[顧客ID]=[Forms]![フォームB]![顧客ID]と入力しても反映されません。 フォームBの顧客IDの名前を替えても反映されず、何も表示されません。 ="[顧客ID]=" & =[Forms]![フォームB]![顧客ID]にするとエラーになります。 どのような式を入れると同じIDのものが表示されるようになりますか? 教えて下さい。 よろしくお願い致します。

  • 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つ以上の検索条件で検索できないでしょうか。お願いします。

  • クエリの抽出条件

    クエリの抽出条件を手入力では無く、コンボボックス方式で プルダウンでリストを選びたいと思い下記の抽出条件を入力 [Forms]![フォーム名]![コンボ名] しかし、パラメータ入力時の名前が、Forms!フォーム名!コンボ名と変わるのみで プルダウンになりません クエリを過去のデータ検索のみで使用したいと思ってます。 ネットをくぐると、メインフォームを開いてとありますが、それでも駄目です。 また、クエリー検索だけで、メインフォームを開かないでプルダウン方式には 出来ないものでしょうか よろしくお願い致します

  • Accessでの電話番号下4桁での検索について

    Access初心者です。 今Accessで顧客管理を作成しています。 フォームで電話番号の下4桁で検索し、該当の顧客の情報がフォームで見れるようにしたいのですが、クエリでの取り込むべきフィールドや抽出条件などがよくわかりません。 今現在はクエリに「電話番号」フィールドだけを取り込み、抽出条件に Right([Forms]![電話番号検索]![電話番号],4) というのを入れてます。 今の段階で作成しているものは、 ・ユーザーテーブル ・検索実行クエリ ・ユーザーフォーム ・書き込みフォーム ・電話番号検索フォーム ・開くマクロ ・閉じるマクロ ・最後のレコードへ移動するマクロ ・新しいレコードへ移動するマクロ ・書き込みマクロ ・終了マクロ 以上になります。 電話番号検索フォームで下4桁を入力し、検索ボタンを押すとユーザーフォームの該当の顧客の情報が表示されるようにしたいというのが目的です。 何卒ご指導の程よろしくお願い致します。

  • アクセス2000 複数の条件でクエリ作成

    アクセス2000を使用しています フォームを作成して テキストボックスを3つ、ボタンを1つ配置しています テキストボックスには番号、名前、名前ヨミをそれぞれ入力します 名前とヨミはあいまい検索をしたいのですが クエリの条件をどのように書けばいいでしょうか? 番号の条件 Forms!MAIN!番号 名前の条件 like "*" & Forms!MAIN!名前 & "*" ヨミの条件 like "*" & Forms!MAIN!名前ヨミ & "*" をそれぞれ または で記入したのですがうまく抽出されません たとえば、番号のところに何か入力しても残りの2つが空白であるためにあいまい検索なので全てという認識で抽出をかけているのだと思います どのように条件を書けばうまく抽出されるでしょうか

  • クエリの検索条件をフォームから入力したい

    フォーム2つの変数を入力して、クエリにレコードを検索させたいと考えています。 具体的には、 コンボボックスから店舗名を選び、 テキストボックスに抽出する期間を入力して、 それをクエリに反映させて期間内の対象店舗における来店者数を調べたいのですが、うまくいきません。 詳細は、以下のような形です。 テーブル: ・顧客情報(氏名・来店日・来店した店舗番号) ・店舗(店舗番号・店舗名) 「店舗」テーブルは、顧客情報でルックアップできるようにしています。 フォーム: ・フォーム名:来店履歴 ・コンボボックス(名前:店舗選択)で店舗を選択し、 ・テキストボックス2つ(名前:日付1・日付2)に日付を入力する クエリ: ・店舗テーブル、店舗番号 [Forms]![来店履歴]![店舗選択] ・顧客情報、来店日 Between [Forms]![来店履歴]![日付1] And [Forms]![来店履歴]![日付2] 思い当たるフシとしては、 ・コンボボックスへの設定の仕方があっているかどうかが分からない。 現在は、来店履歴フォームのコンボボックスへのプロパティを、 値集合ソース:店舗テーブル 列数:2 連結数:1 にしています。 顧客情報テーブルで設定しないといけないのでしょうか?? ・クエリの集計欄がグループ化のままで良いのかどうかが分からない。 where関数でやるみたいなことを聞きましたが、やってみてもうまくいきませんでした。 現在は、フォームで入力は出来るものの入力しても無反応で何も表示されないという状況です。(最初から何も表示されていません) もうワケが分からなくて大変困っております。 どうぞよろしくお願いいたします。

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

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

  • AccessでBetween条件を含むクエリーで、Between条件を

    AccessでBetween条件を含むクエリーで、Between条件を入力しなくてもデータを抽出するには? Access97でデータの抽出を行いたいと思います。 「顧客名」「商品名」「出荷日」という項目を含むクエリーから、希望のデータを抽出するフォーム(名:検索フォーム)を作成しています。 検索フォームにそれぞれ「顧客名」「商品名」「出荷開始」「出荷終了」という名前の非連結のテキストボックスを作り(規定値を"*"にしています)、それに値を入力すると、これらのテキストボックスの下に配置したサブフォームに抽出されたデータが抽出される様にしたいのです。 現在、クエリーの「顧客名」項目の抽出条件に「[forms]![検索フォーム]![顧客名]」という様に入力し、同じ様な記述を「商品名」項目にも行い(条件は[商品名]としています)、出荷日に「Between[forms]![検索フォーム]![出荷開始]And[forms]![検索フォーム]![出荷終了]」と記述しています。(これらは全てAnd条件にしています) さて、この検索フォームの値入力項目で、全てのテキストボックスに入力しなくても(1つ以上値が入力されていれば)データをサブフォームに抽出できるようにしたいのです。 現在、「出荷開始」&「出荷終了」に値を入力すれば、その他の値(「顧客名」と「商品名」)を入力してもしなくてもデータが抽出できますが、「出荷開始」&「出荷終了」を入力しない限りデータが抽出されません。 この「出荷開始」&「出荷終了」を入力しないケースでもデータが抽出できる様なフォームを作成したいのですが、 どの様に記述を変えたらよいでしょうか?

  • Access where条件式について

    Access where条件式について 最近マクロでwhere条件式による抽出を知った初心者です。 現在単ページ表示のフォームから、表示されているID番号のレポートを表示させたいと考えているのですが、そのレポートをレコードソースになるマスターテーブルから [Form]![ID]=[マスターテーブル]![ID] とすると該当するレポートが表示されるのですが、 レポートのレコードソースをクエリに変更 [Form]![ID]=[マスターテーブルクエリ]![ID] に変更するとすべて空で表示されてしまいます。 クエリを使用することは出来ないのでしょうか? データベースの基礎があやふやなこと、where条件を最近知ったことなどから、検討違いなことを質問していたら申し訳ありません。 また質問に対して、足りない情報があればご指摘願います。 OS Windows XP Access 2003