• ベストアンサー

アクセス2003の検索クエリーについて

今、アクセス2003で色々勉強しています。 氏名とか住所はクエリーの曖昧検索で式を書いて動いたのですが。 期間・・何年何月何日~何年何月何日で検索する式がわかりません。 どのような式を書けばいいのでしょうか? ちなみに曖昧検索はIIf(IsNull([Forms]![検索画面]![住所]),True,[住所] Like "*" & [Forms]![検索画面]![住所] & "*")と書いて動きました。 うまく表現が出来ないので、わからないかもしれませんがよろしくお願いします。

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

  • ベストアンサー
  • tag1701
  • ベストアンサー率54% (67/123)
回答No.4

>売上金額は左側の□が売上で右の□は売上2という名前にしてもちろん非連結にしてあります。 この場合、一行目の条件に 売上金額条件: between[Forms]![検索画面]![売上金額]and[Forms]![検索画面]![売上金額2]と書くのでしょうか? 式の書き方に問題は無いと思われます。。。 ※そのエラーがどうやったらでるか試してみたのですが、"!"を全角で記述  したらでたのですが、スペースや[等は全て半角でしょうか? 又 確認として、このコメントの書き方の所でBETWEENと[Forms]の間に半角スペースが  ありませんが実際にはありますよね?(通常自動修正かかるので問題ないと思いますが。。)  あと、コントロールの2つが「金額」と「金額2」となっていて、条件  のコントロール名が「売上金額」と「売上金額2」となっていますが  ここは合わせないといけないのですが、実際記述は如何でしょうか?  尚、実際私が動かしている検査データ抽出の日付~日付の記述  を画面添付してみますね。(何かヒントになれば・・)  

a-funatsu
質問者

お礼

ありがとうございます。 クエリー自体も違うような・・・・わたしはフィールドの所に記述して抽出条件の所をtrueにして書いておりました。実際住所などはコレで検索できていた物で・・・ エラーメッセージは指定した式の構文が正しくありません。 下の所には、「たとえば、値または識別子が前にないのにカンマを指定しています。」と出ています。 実際書いてあるのは フィールドに売上金額条件: between [Forms]![検索画面]![売上金額]and[Forms]![検索画面]![売上金額2] もう一度色々やってみます。ファイルを貼り付けて見て頂ければどこが悪いかすぐにわかるのでしょうが、文面だけですとなかなか難しいですね。まったく泣けてきます。 ありがとうございました。

a-funatsu
質問者

補足

色々やってみましたがやはりダメでした。 何度もお手数おかけしまして申し訳ありませんでした。 他の方法で何か考えるしかないのかもしれません。 もし、ご都合よろしければですが、私はbakuhatu21ヤフーメールで届きます。ありがとうございました。

その他の回答 (3)

  • tag1701
  • ベストアンサー率54% (67/123)
回答No.3

ごめんなさい。まだ完全に理解できなくて・・・ 住所のあいまい検索条件は検索クエリの住所列の条件欄に書いてるんですよね? であれば日付抽出は日付のデータ形式をyyyy/mm/ddにして検索フォーム の□の形式も同様に合わせて、クエリの日付の条件欄に between [Forms]![検索画面]![□] and [Forms]![検索画面]![□] (もちろん□は□~□)、 金額はクエリ金額列の条件に between [Forms]![検索画面]![金額1] and [Forms]![検索画面]![金額2] でどうでしょうか? 基本的に検索条件のフォームに絞り込みたい項目を作成し保存。 検索クエリはそのフォームの条件を入れ込むと複数条件はクリア できるはずです。 がんばってください。 (でも、簡単にするには前述のクエリのbetween **/**/**・・・を between [いつから] and[いつまで]と書いて金額も  between [いくらから] and[いくらまで]と書いてクエリを 作成し、そのクエリを基にフォームやレポートを作成すると フォームやレポートを開く際に[いつから?]などと聞いてくるので 4/1等と入れていくだけで結果がでますよ)

a-funatsu
質問者

お礼

何度もありがとうございます。 住所の曖昧検索もクエリの一番上の行に 住所条件: IIf(IsNull([Forms]![検索画面]![住所]),True,[住所] Like "*" & [Forms]![検索画面]![住所] & "*") と書きました。 同じように年月日、売上金額を検索できればと思いました。 フォームの検索画面では何年何月何日~何年何月何日、いくらから~いくら、と入力できるように作りました。 売上金額は左側の□が売上で右の□は売上2という名前にしてもちろん非連結にしてあります。 この場合、一行目の条件に 売上金額条件: between[Forms]![検索画面]![売上金額]and[Forms]![検索画面]![売上金額2]と書くのでしょうか? betweenの前の記述を色々やってみたのですが、指定した式の構文が正しくないと出てしまいました。 何度も初心者におつきあいいただけ大変申し訳ありません。 よろしくお願いします。

  • tag1701
  • ベストアンサー率54% (67/123)
回答No.2

検索条件に合ったデータだけ見たいというのであれば クエリを開いて画面上部に「フォームフィルタ」(アイコンに マウスをあわせれば表示されるハズ)をクリックし、 条件付けたい列に検索条件を書く。(例えば日付ならbetween **/**/** and **/**/**,でok、金額列なら between 10000 and 20000等、 住所等曖昧なものの列は like *愛知* 等) そして「フィルタの実行アイコン」をクリックすれば見られます。 もしフォームというのであれば基本的に時間のやり方と同じです。 時間でないのでただの数字ですが・・・ ただフォームでひっかかるデータが複数ありそれを表示させるので あれば検索用フォームと抽出データ表示用のサブフォームの作成が 必要となり、検索用フォームに再クエリ実行用のボタンを作る等の 作業が必要となるかもしれません。 

a-funatsu
質問者

お礼

回答ありがとうございます。 またもわたしの表現が充分でなかったことをお詫びします。 現在、入力用フォームと検索フォーム、そして検索結果フォームとあります。検索は検索クエリーから検索結果フォームが帳票で表示されるようにしてあります。 項目としては、住所、氏名、電話、見積日、売上金額、担当者と書いてあります。 その中で任意の日から任意の日までどれだけ見積を出したか検索したかったのです。 また、金額も例えば10万から20万までとか任意の金額の幅で検索できれば、と考えておりました。 もちろん複数件数が検索されるのですが。そんな式があるのであれば使ってみたいと考えていた次第です。 ご存じでしたらよろしくお願い致します。

回答No.1

http://office.microsoft.com/ja-jp/access/HA100666111041.aspx の「日付/時刻型フィールドの抽出条件」が参考になるかもしれません。

a-funatsu
質問者

お礼

早速のお返事有り難うございます。 詳しく見てみます。 尚、これって例えば、\10、0000~\30,0000を検索する、なとと言うのにも活用できるのでしょうか? ちなみに検索フォームは□~□として左側と右側の□に、いくらから~いくら、と入力するように作りました。

関連するQ&A

  • ACCESSでクエリーを使った検索

    VBAを使えば簡単にできるのですが、事情があり、クエリーのみで行わなければいけません。 フォームに入力された情報を元に検索できるクエリを作成しました。 通常でしたらクエリのフィールド名の下の抽出条件に Forms![F_検索]![検索条件1] とすればいいのですが、これが複数の条件を設定した場合はすべての条件を入力しないと、検索結果が出ないことから 以下のように変更しました。 フィールド名の抽出条件には何も書かず、別に式として IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=[Forms!]![F_検索]![検索条件1])) と入力しそこの抽出条件に「True」と入力しました。 これで何も入力されてない場合は全件が表示されるようになりました。 通常の検索はこれでいいのですが疑問点が2点あります。 1.期間を抽出する場合はどうしたらいいのか? IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=Between [Forms!]![F_検索]![検索条件1] and [Forms!]![F_検索]![検索条件2])) とかしてみましたがダメでした。 2.あいまい検索をするにはどうしたらいいのか? IIf(IsNull(Forms![F_検索]![検索条件1],True,[フィールド1]=Like [Forms!]![F_検索]![検索条件1])) なんてしてみましたがだめでした。 ご回答よろしくお願いします。

  • <access あいまい検索のクエリ作成について>

    <access あいまい検索のクエリ作成について> access初心者です。。 今,住所録から地名を入れて検索するクエリを作成しています。 式を作成しましたが,先頭に該当するものしかヒットしません。  例:大阪府で絞り込みをした場合,大阪市等,大阪が先頭にくる住所しかヒットせず,    泉佐野市等は出てこない。 検索値が前後に含まれるようにするには数式をどのように変えればいいのでしょうか。 お願いします!! ■入れた数式■ (1)フィールド IIf(IsNull([forms]![frm住所検索]![住所]),True,[住所] Like [forms]![frm住所検索]![住所] & "*") (2)テーブル・並び替え・表示=空欄 (3)抽出条件=true ■補足■ フィールド:名前,住所等 クエリ名:住所検索

  • アクセスクエリでの空白の値の表示

    フォームで条件フィールドから2つ同時の検索をかけたく クエリに以下の式を記載致しました。 検索はかかるのですが空白のデータがでてきません。 空白のデーターも表示させたいためにはどうしたらいいでしょうか? 式1: IIf(IsNull([Forms]![フォーム]![条件1]) And IsNull([Forms]![フォーム]![条件2]),True,[条件]=[Forms]![フォーム]![条件1]Or [条件]=[Forms]![フォーム]![条件2] 抽出条件  True

  • アクセスのクエリで、式の使い方を教えて下さい

    下記のクエリがあります。 氏名 番号(8桁あり2文字で抽出) Like "80*" Or Like "81*" Or Like "90*" 負担金 金額 不足金 そして 式1: IIf((金額]-[不足金])>=0 Or IsNull([不足金]),True,False) 抽出条件 True としています。 式2で Like "81*"の人で、負担金が600以上の人を追加しようとしましたが出来ませんでした。 方法を教えて下さい。

  • <access クエリのあいまい検索>

    <access クエリのあいまい検索> こんにちわ。以前,クエリについて質問した者です。(前回質問番号:6003331) 引き続き,質問です。 前回はクエリでのあいまい検索の式についての質問でした。 今回は同じクエリで追加として別のフィールドでも同時にあいまい検索を行いたいと思っています。 名前,住所,連絡先等がある住所録があります。 クエリを使って,任意の文字検索をするように設定しています。 前回ここで教えて頂き,「京都」と入れたら,「京都市」も「京都群」もヒットするようになりました。 今回は同時に他のフィールドの検索値が入っていたら,それも一緒に表示させるようにしたいのです。 具体的には下記のとおりです。 1)住所のフィールドに「京都」が含まれている人,かつ,「田中」という文字を含む人を検索 2)単に「田中」という文字を含む人を検索 現在の入力値は下記のとおりです。 ご指導お願いします。 ■今,入力されていること フィールド:IIf(IsNull([forms]![frm条件検索]![住所名]),True,[住所名] Like "*" & [forms]![frm条件検索]![住所名] & "*") テーブル・並び替え=空欄 表示:チェックが入っています。 抽出条件:true

  • 検索条件について。

    あるフォームで選択・入力された値から抽出を行うようなクエリを作成しました。 空欄でもきちんと抽出されるようにと、下記のようなものを記入しました。 IIf(IsNull([Forms]![検索結果]![rank]),True,[ランク] Like [Forms]![検索結果]![rank]) ですが、実行を行う(空欄で実行)と、「式が複雑すぎです」とエラーがでてしまいます。 実際の値を入力すると、何も抽出されません。 どこが違うのでしょうか? よろしくお願いします。

  • Access2000 抽出について

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

  • Accessの検索フォームで。

    Accessを使ってデータベースを作成しています。 「テーブル1」があり、これには 名前ID 名前 入力日 チェック項目1 チェック項目2   : とあります。 これをもとに「検索クエリ」を作成しました。 検索クエリの項目は「テーブル1」とまったく同じですが、 すべてを検索するわけではないので ・名前ID  「検索項目なし」 ・名前  「Like IIf(IsNull([Forms]![検索条件入力フォーム]![名前]),[氏名],'*' & [Forms]![検索条件入力フォーム]![名前] & '*') ・入力日  「検索項目なし」 ・チェック項目1  「Like IIf(IsNull([Forms]![検索条件入力フォーム]![チェック項目1]),[チェック項目1],[Forms]![検索条件入力フォーム]![チェック項目1])」 ・チェック項目2  ※上記と同じ。   : としてあります。 この「検索クエリ」をもとに「検索条件入力フォーム」を作成してあります。 名前の欄に「田中」と入力すれば、「田中」がつく人がすべて検索されるというようなカンジになっています。 「テーブル1」に空欄があり、その場合に、検索がうまくいきません。 「検索クエリ」のところですべてに条件を入れればいいのですが、フォームに全てが入っていないので。。。 やはりフォームに「テーブル1」の項目すべてを含め、クエリで条件を入れるべきでしょうか? これが今考えている中では一番手早いようなカンジがするのですが、どうしてもあまりスマートなやり方ではないような気がして。。。 これしかないのであれば、これでやりますが、他にいい方法があれば、教えていただけないでしょうか? あまり上手な文章ではないので、補足要求があれば補足します。 宜しくお願いします。 Ac2000です。

  • Access2000 でのLikeを使用したフィルタ操作

    こんばんは、答えていただけたらありがたいです。。。 今、Access2000で従業員DBを作成しています。 会社の従業員人数が200人ほどいるので、管理できるソフトを作っています。 検索フォームを作成し、姓などをあいまい検索したいと思い、クエリで作ってみましたが、うまくいきません。 姓の抽出条件に Like ("*" & Nz([Forms]![検索君]![TXT3],"*")) と書きましたが、全員出てしまいます。 また、 式1: IIf(IsNull([Forms]![検索君]![TXT3]),True,[Forms]![検索君]![TXT3]) こういう式も書いてみましたが、-1かエラーが出る結果になりました。。。 以上です。よろしくお願いします。

  • ACCESSのあいまいな条件のクエリ 

    フォームで金額を入力します。 この入力された金額を使ってクエリの条件を作りたいと考えています。 <条件> ・金額が未入力の場合は、全て抽出。 ・金額が入力されている場合は、その金額以上を抽出   (例:1000と入力された場合は、>=1000) 下記のような条件式を入れたら、金額を入力しているにも関わらず、 何も入力されてきませんでした。 IIf(IsNull([Forms]![フォームA]![txt金額]),Like "*",>=Val([Forms]![フォームA]![txt金額]))

専門家に質問してみよう