みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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")

投稿日時 - 2012-04-29 16:00:20

QNo.7447727

困ってます

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

すみません、「今後のための留意点」に触れていたら、長文になってしまい
ました・・・(汗)

クエリのデザインビューで、『フィールド:』欄に指定する式ということでしたら、
恐らく以下の式で、意図する結果が得られるのではないかと思います。
(ただ、私が「こうして得た最小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引数でのテーブル名の指定は
  不要です。
  (正しく入力していればエラーにはなりませんが、間違えればエラーとなる
  ので、入れない方が間違いもなくなり手間も省ける、と)


・・・以上です。

投稿日時 - 2012-04-30 00:26:10

お礼

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

投稿日時 - 2012-04-30 01:16:30

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問