• ベストアンサー

Access演算コントロールについて

bonaronの回答

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.3

演算: IIf([フラグ]=1,DMin("ID","テストM","点数>" & [平均点] & " AND ID > " & [ID])-[ID],Null) 「フラグ」が数値型の場合です。

nadyu
質問者

お礼

bonaron 様 教えて頂いた内容を演算コントロールに持たせたところ、 一発で思いどうりの動作を致しました。 本当にありがとうございました。 nadyu

関連するQ&A

  • SQL文について(ANDとORの論理演算について)

    下記の質問についてご教授お願い致します [設問] 国語と数学の試験を実施し、2教科の成績は氏名とともに、得点表に記録されている。 1教科は平均点以上で、残りの1教科は平均点未満の生徒氏名を表から抽出するSQLはどれか。 A:国語の点数が国語の平均点以上 B:数学の点数が数学の平均点以上 とするときに、SQL文は SELECT 生徒氏名 FROM 得点 WHERE (A OR B) AND NOT (A AND B) となります。 このときに、 WHERE (A OR B) AND NOT (A AND B) ここの論理演算を理解することが難しいです。 論理演算を分解すると A OR B 国語または数学が平均点以上であるケース NOT (A AND B) 国語と数学の両方が平均点以上であるケース となり、この両者をANDで取ると 1教科は平均点以上で、残りの1教科は平均点未満になることになります。 この論理演算でどうしてもこのような結果を引き出すことができません。 お手数ですがご教授お願いいたします。

  • データーベース設計段階での質問です。

    データーベース設計段階での質問です。 管理しなければならないフラグ項目が100近くあり、そのフラグがよく検索対象になります。ただし、1レコードにつけられるフラグは10個までと決まっています。現在使用中のデータベースでは10個のカラムをつくっていて、そこに対象フラグのIDを列挙しています。 例えば A項目に対して1,20,34,56,78 B項目に対して3,6,11,15,42,78,89 のフラグがたっている場合、 name f0  f1  f2  f3  f4  f5  f6  f7  f8  f9 ------------------------------------------------------ A   1   20  34  56  78  null null null null null B   3   6   11  15  42  78  89  null null null となっています。他に日付などのカラムが5項目ほどあります。 このままだと検索等でややこしいことになるため テーブルを整理したいと思っています。 1.100個のboolean型のカラムを作る 2.ビットフラグ(ビットフィールド)のカラムを4つほど作って、検索時ビット演算する 3.項目名(ID)とフラグNo、だけの2カラムで構成した別テーブルを作ってjoinする 4.文字列としてIDを格納し、フルテキストインデックスをはる などがあると思うのですが、効率のいい設計がいまいちよくわかっていません。 上記の方法以外にも何かいい方法があると思います。 このような場合の、テーブル設計の方法を教えて下さい。

  • 国語だけテストの点数が取れなくて困ってます。中3で

    僕は今回期末テストの点数が返されたのですが、理科が平均40で60点社会が平均71で94、数学が平均55で74.英語が平均50で62、国語が平均60の中僕は40です。どうしても国語だけ点数が伸びません。ちゃんと期末テストの範囲も勉強したのですが本当に国語だけ取れません。もうそろそろ受験ですが国語の点数をあまり取れる気がしません。どうすれば国語の点数を取れるでしようか

  • ORACLEのLIKE演算子について

    いつも拝見させて頂いております。 ORACLEのLIKE演算子についての質問です。ある抽出条件 をシステムで作成して、その抽出条件を元にNOTで括って正反対 の抽出条件を作成したいと思っています。しかし抽出条件の中にL IKE演算子が含まれていて、パターンマッチングの抽出条件が存 在する場合にNOTで括って正反対の抽出条件を作成すると、NU LLのデータが含まれなくなってしまい、正しい結果が得られませ ん。LIKE演算子はNOT演算子を付加するとNULLデータは 抽出できないものなのでしょうか。ご存じの方がいらっしゃいまし たらご教授頂けないでしょうか。宜しくお願い致します。 WHERE NOT ( 抽出条件 ) ↑このような感じ

  • Access DLookupについて

    お世話になります。 ローカルクエリがあり、その抽出された内容を取得したいの ですがどのようにすればよいでしょうか。 クエリのフィールドは「拠点名」「端末数」の2つのみで、当該クエリは フォーム上のテキストボックス内の拠点名を条件としてます。  クエリの「拠点名」の条件として、 Forms![テスト]![拠点名] 直接クエリを開くと、ちゃんとその拠点名で抽出され、端末数も 表示されてます(必ず1レコードのみ抽出されます)。 で、この抽出結果をVBAで取得したいのですが。。 調べてみたところDLookup関数を使えば取得できるようなのですが、 指定の仕方がいまいち分からずにいます。 たとえば、フォーム上に「端末数」というテキストボックスを作成し、 そのレコードソースの箇所に「= DLookup("端末数","ローカルクエリ","[拠点名] = '" & Forms![テスト]![拠点名] & "'")」と指定するものなのでしょうか。 それとも、VBAで Forms![テスト]![端末数] = DLookup("端末数","ローカルクエリ","[拠点名] = '" & Forms![テスト]![拠点名] & "'")と指定するのでしょうか。 両ケースともに Forms![テスト]![端末数]にはNullが入ってしまい、端末数を 取得できません。 ちゃんとフォーム上の拠点名が参照できてないのか、それともDLookupの指定の 仕方が悪いのか分からずにいます。 勉強不足で大変恐縮ですが、ご教授の程よろしくお願い致します。

  • Accessレポートでの前回レコード参照に関して

    Accessレポートでの前回レコード参照に関して いつもお世話になっております。 Access2007を使用しています。 クエリーで集計したデータをレポートに、顧客ID毎に今回/前回の[結果]データだけを横に表示させて1枚の表にしたいと思っています。 クエリーは、[日付]、[顧客ID]、[結果1]、[結果2]、[結果3]・・・で、[日付]データは、8桁の数値になっています。 いろいろとサイトを見て、Dlookupなどで、挑戦してみたのですが、うまくいかず、皆さんのお知恵をお借りできればと思います。 宜しくお願いします。

  • SQLiteで最も古いレコードのみの削除

    AndoroidでDBを使うのですが、考える動作のSQL文が作成できません。 テーブルTESTは以下のカラムを持ちます  ・ID - primary key not null  ・VALUE - not null テーブルTESTは最大で10件のレコードを保持します、11件目のレコードが発生したら 最も古い1件目のレコードを削除してから、11件目のデータを新しい10件目のデータとして テーブルに保存します。 そのために「最も古いレコード1件のみを削除する」というSQLを作成したいのですが、 考えたSQL文が正しくないと怒られてしまいます。 delete from TEST as A, (select * from TEST LIMIT 1)as B where A.ID=B.ID; この動作を1つのSQL文で行うのは不可能なのでしょうか?

  • データベース:主キーが文字列の場合IDを振るべき?

    テーブルの主キーが文字列の場合、 その主キーの文字列を通し番号に置き換えて、 その文字列は別テーブルに移したほうが検索が速いですか? 例えば、テーブルが CREATE TABLE spec ( test_name VARCHAR(40) NOT NULL, upper_limit NUMERIC(17,7), lower_limit NUMERIC(17,7), PRIMARY KEY(test_name) ); で、40文字という長いテスト項目名の場合、 CREATE TABLE spec ( test_id INTEGER NOT NULL, upper_limit NUMERIC(17,7), lower_limit NUMERIC(17,7), PRIMARY KEY(test_id) ); と CREATE TABLE test ( test_id INTEGER NOT NULL, test_name VARCHAR(40) NOT NULL, PRIMARY KEY(test_id) ); という二つのテーブルに分けたほうが検索は速くなりますか? (もちろん、結合する時間も含めてです。) もし速くなるとしても、文字数が3文字など少ない場合は 通し番号に置き換えてもきっと効果は薄いですよね? 何文字以上の文字列なら通し番号に置き換えたほうが速いですか? 皆さんはどのように決めていますか?

  • AccessのDlookupの引数設定について

    テーブルA ID | val ---------   01 | 001 02 | 002 03 | 003 04 | 004 05 | 005 テーブルB ID | val ---------   01 | 001 02 | 002 03 | 003 05 | 005 テーブルAとBのレコード数はいずれも約30万件あります。 本来AとBは同数のレコードをもつはずなのですが、数件の差異があることがわかりました。 それが何かを調べたいのですが、その方法についてご教示ください。 エクセルであれば、Vlookupを使い テーブルA ID | val | Vlookup式 --------------------   01 | 001 | 001 02 | 002 | 002 03 | 003 | 003 04 | 004 | Null 05 | 005 | 005 という方法で発見できるのですが、なにせ件数が多いため、慣れないAccessを使ってやろうと考えました次第です。 で調べると、Vlookupに似たDlookup関数というのがあるではありませんか。 そこで、「クエリデザインの作成」→「テーブルの表示」ウィンドウの「テーブル」タブから「テーブルA」を選択→項目「ID」「val」をデザイングリッドに展開しました。 そして、新規フィールドを選択→ビルダーをクリック→ここでDlookupを選択しました。 しかし、以下の式の引数をどのように設定すればよいのかではたと立ち止まってしまいました。  DLookUp(«expression», «domain», «criteria») どう設定すれば、エクセルにおけるVlookupのようなことが実現できるでしょうか。 あるいは、もっと適当な方法がありましたらご教示いただければ幸いです。 ちなみに、環境はAccess2010を使っています。 よろしくお願いします。

  • アクセス 空フィールドのみ 別データー挿入

    アクセスの同テーブル内に下記レコード(1)(2)が有ります。 (1)レコードのフィールドにはほぼデータが入っていますがNULLのフィールドもあります。 (2)レコードのフィールドはほとんどNULLです。 (1)のレコードのフィールド、データーを取得して (2)のレコードのフィールドがNULLの場合は(1)のフィールドのデーターを貼付ける 例えば下記の(3)様にしたいです。 |数値型 |テキスト型 |日付型  |通貨型  |メモ型 |Yes/No型 | |ID    |名前     |入力日  |金額   |     |チェック   | (1)|01   | さる    |07/28 |1,000 |     |-1     | (2)|02   |とら     |       |      |     |       | (3)|02   |とら     |07/28 |1,000 |     |-1     | 自分なりに考えた所 DLookUp で一つ一つ(1)フィールドを取得して(2)フィールドNULLの場合は挿入し(3)にする方法を 考えましたが、フィールド数が実際には100ほど有り方法が良くないと思いました。 Cloneメソッドを使用して同じフォームに(1)と(2)データーを表示させて上手く出来ないか 考えたりもして見ましたが上手く行きません 良い方法が思いつきません こんな方法があるとか このサイトを参考にしなさいとか どなたかご教授頂けませんでしょうか よろしくお願い致します。