• ベストアンサー

ACCESSのクエリ計算

Access2003でクエリで特定条件に一致するIDを出して 今度はそのそれぞれのIDから+100(IDが2なら2~102の範囲でというように)の元のテーブルの 値の中からフィールド1が5以上の条件に一致するものの最小のIDをもとめたいと思ってます。 始めたばかりの初心者です DMINでできるのかなと思って下記式にしてみたのですが パラメーターエラーでうまくいかなくて、、 DMin("[テーブル1].ID","[テーブル1]","[テーブル1].ID>=[クエリ1].ID&[ID]<[クエリ1].ID+100&[テーブル1]フィールド2>5")

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

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

すみません、「今後のための留意点」に触れていたら、長文になってしまい ました・・・(汗) クエリのデザインビューで、『フィールド:』欄に指定する式ということでしたら、 恐らく以下の式で、意図する結果が得られるのではないかと思います。 (ただ、私が「こうして得た最小IDの使用目的」を推測できていないので、  意図を汲み取り間違えていましたら、申し訳ありません(汗)) 式: DMin("[ID]","テーブル1","[ID]>=" & [ID] & " And [ID]<=" & [ID]+100 & " And [フィールド2]>5") (これで、クエリ上で「ID=1」のレコードでは、  DMin("[ID]","テーブル1","[ID]>=1 And [ID]<=101 And [フィールド2]>5") という式として演算されることになります) 【式の説明】 DMin関数の第3引数で、「"」(ダブルクォーテーション)で括られた中に 指定できるのは、「第2引数で指定したテーブルのフィールド」か「定数」 (数値または文字列)、及び「『Forms!フォーム名!コントロール名』のような 形で指定したフォームのコントロール」(「Reports!~」とすればレポートも 可)だけです。 クエリのデザインビューで使用して、「第2引数で指定したテーブル・クエリ」 ではなく、「クエリ内で指定したテーブル・クエリ」のフィールドを参照する 場合は、「"」の括りの外(そと)に出してやる必要があります。 (その上で、「『"』で括った部分」と「括りの外側」を合わせてひとつの式に  するために、「&」を使用します) 一応、下記の過去のQ&Aを参考までに挙げておきます: http://okwave.jp/qa/q6442713.html 【注意点】 <必須>  ・「複数の抽出条件を満たす場合」を指定するのには、「And」又は   「Or」を使用します。   (上でも触れましたが、「&」は文字列を繋ぎ合わせるのに使用します)  ・Accessの場合、等号・不等号・ブラス・マイナスであればそのまま   数値などを続けても問題ありませんが、それ以外の演算子(「&」や   「And」など)には、前後に「半角スペース」が必須になります。   (Excelのワークシート関数とは仕様が異なりますのでご注意下さい) <推奨>  ・複数のテーブルやクエリを基にすることができるクエリと違い、DMin等   の「定義域集計関数」では、第2引数にはただひとつの「テーブル」か   「クエリ」しか指定できないので、第1引数でのテーブル名の指定は   不要です。   (正しく入力していればエラーにはなりませんが、間違えればエラーとなる   ので、入れない方が間違いもなくなり手間も省ける、と) ・・・以上です。

xnatsurou
質問者

お礼

非常に詳細な回答をいただきありがとうございました。本当に勉強になりました。これを足がかりにいろいろ試してみたいと思います

関連するQ&A

  • アクセスのリレーションシップとクエリ

    私は、アクセスの初心者です。なので、難しいことはよく分からないのですが、アクセスではある1つのフィールドをキーにしてくっつけたりすることができるじゃないですか?そのキーを設定したりするのはリレーションシップでも、クエリでも同じような感じで行うと思うのですが、その2つの違いはクエリはそれをテーブルとして表示できるのに対して、リレーションシップはただ定義するしかできずテーブルとして表示はできないのでしょうか? あと、クエリとかである条件で抽出したテーブルの1つのフィールドのSUMを出したいのですがどういった条件式を書けばいいのでしょうか? なにぶん、初心者ゆえに質問が分かりにくいと思いますが、どうかよろしくお願いします。

  • アクセスのクエリでパラメータを表示させない方法は?

    超初心者の質問ですみません。。 アクセスのクエリで、ある数字の全体に対して占める割合を求めるため、以下のような式をいれています。 フィールドC: [フィールドA]/[フィールドB] このクエリを開いたときに毎回パラメータが表示されるのですが、これを表示させないためにはどのようにすればよいのでしょうか?OKを2回押せばきちんと計算された値が入ってくるのですが、毎回OKを押さずに開けるようにしたいです。 ちなみに、フィールドAとフィールドBは、あるテーブルに入っている値をクエリ側で 集計 を「合計」に設定して求めた値が入っていて、フィールドA~Cは同じクエリの中にあります。 VBAやSQLはまったく理解できません。 よろしくお願いします。

  • アクセス クエリ

    アクセス クエリの抽出について教えて下さい。例えば、1つのクエリの中に数値のフィールドが5つ作成してあり、それぞれ違うフィールドの抽出条件をしています。それぞれの条件を入れてしまうと5つのフィールド条件全てに合ったものしか抽出できません。 5つのフィールドのうち、どれでも1つ一致したら抽出できるようにしたいのですが良い方法を教えて下さい。宜しくお願いします。

  • AccessのVBAでパラメータクエリー設定

    お世話になります。 AccessのVBAで質問させてください。 「クエリーA」に設定している「ID1」のパラメータを 「テーブルA」の「IDX」の値を設定したいと思っております。 「ID1」にパラメータ2を設定する方法は分かったのですが、 下記の2つの方法がわかりませんでした。 ・「ID1」のパラメータを「テーブルA」の「IDX」の値を設定する方法 ・「テーブルA」は複数レコードあるので、その数だけfor文的なループで回したい お手数で申し訳ございませんが、 「クエリーA」に設定している「ID1」のパラメータを 「テーブルA」の「IDX」の値を設定する方法VBAコードを 教えて頂ければと思います。 本当に勝手いいますが、コードを記載して頂ければと思います。 宜しくお願い致します。 -----「ID1」にパラメータ2を設定する方法----- Set qdf = dbs.QueryDefs("クエリーA") With qdf .Parameters("ID") = 2 Set rst = .OpenRecordset End With

  • Accessの不一致クエリについて

    Accessの初心者です。二つのテーブルの異なるフィールどを比較する方法について、教えてください。 例えば、"6523610"という数字が両方のテーブルにあるかどうか調べたいとします。 テーブルA 523(フィールド名:契約コード)+610(ID) テーブルB 6523(フィールド名:取引コード)+61(フィールド名:地域コード) と、それぞれ構成が違います。頭につく"6"と最後の"0"は共通の数字です。クエリで新たなフィールドを作って、"6523610"にするまではわかるのですが、どのフィールドを関連づけていいかわかりません。このような場合は、不一致クエリではできないのでしょうか? 仕事で、明日中にデータを調べなければいけないので困っています。 よろしくお願いします。

  • 【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです

    【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです。 Access2003を使っています。 困っている状況は以下のようなもです。 ■テーブル1  ・フィールド1 ■クエリ1  ・フィールドA:フィールド1  ・フィールドB:[フィールドA]   【抽出条件】>=10 このような条件で、クエリを実行すると、 「パラメータの入力 フィールドA」というダイアログが立ち上がってしまいます。 上記載のクエリ1でフィールドAの[]は自然についてしまうのではずせません。 今はもう一つクエリを作る事でこの状況はなんとかしましたが、フィールドに別名をつける毎にクエリを作るとクエリの数が多くなってしまうので困っています。 クエリでフィールドに別名をつけた場合は、そのクエリ上でその別名を使って抽出をかけることはできないのでしょうか? よろしくお願いします。

  • アクセスのクエリで

    アクセスのクエリで、テーブルAのフィールド1が空白の場合は、0と表示し、(数値型)そうでない場合はフィールド1の値を表示するにはどの様にしたら良いですか? 誰か教えて下さい。よろしくお願いします。

  • アクセスクエリ

    アクセスクエリのフィールド MS-accessのクエリで質問です クエリで、3つのテーブルがあります。 どのテーブルのフィールドにも[売上]があります。 この3つのテーブルの[売上] フィールド1列に表示させる方法はありませんか

  • acccess:クエリの抽出条件

    助けてください_(._.)_ アクセスの選択及び更新クエリで あるテーブル「t_抽出」の「社員番号」フィールドと一致したレコードのみ選択して情報を更新したいのですが。 式ビルダを使ってで抽出条件のところに [t_抽出]![社員番号] と入れるのですが 実行するとパラメータが出てくる どうして?何がいけないのでしょうか(・・? どうぞよろしく

  • Accessでクエリを作成したら・・・

    Accessでクエリを作成したら「式で型が一致しません」のエラーが出て、ヘルプには「JOIN式でデータ型の異なるフィールドを使用して2つのテーブルを結合しようとしています。」とありますが、意味がわかりません。自分ではどちらも同じ数字(コード)で結合しているつもりです。宜しくお願いします。

専門家に質問してみよう