No.1ベストアンサー
- 回答日時:
なかなか回答がつかないようですので、老婆心から。
直接の回答とは言えませんし、すでにご存知かもしれませんが、
一つの参考となさってくださいませ。
実際、勘違いされている方も多く見えるのですが、
エクセルのような表計算ソフトは
「どのセルにどんなデータが入力されている」と言うものをファイル単位で持ちます。
つまり、ファイル内のセル同士の比較ですので、前後の行との比較が容易に出来ます。
これが100行後ろのセルでも、1000行前の違う列のセルでも、
セル番地を直接指定できますから、基本的には常に正しいセルを参照します。
対し、アクセスのようなデータベースソフトはレコード単位でデータを保持します。
同じテーブルに保存されていても、実はレコード同士の相関関係は一切無いのです。
表示上、一見整然と並んでいるように見えますが、
ランダムに保存されているレコードを拾い集めて、ソートして表示しているだけです。
このソートの条件によって、前後の行が入れ替わる可能性は大いにあるのです。
ソート条件も主キーも指定していないテーブルで
「おいおい、入力した順番と違うじゃん」と言った経験はありませんか?
簡単に言うと、これはアクセスが「見つけた順」に表示してしまうからです。
なので、通常の考え方では「前の行」と比較して・・と言うのは通用しません。
さて、アクセスでお望みの処理をクエリで実現させるには、
「このレコードは上から何番目」である、とアクセスが識別できるフィールド、
要するに「連番」フィールドを付加し、ある「連番」を振られたレコードと、
「一つ大きい(あるいは小さい)連番」を振られたレコードとを
比較する方法がまず考えられます。
一つ一つ説明しているとかなりの文字数を要しますし、
図で頂いた条件からでは正確な回答を出すのは不可能ですから、とりあえずヒントだけ。
連番を振るのにはDCount関数が便利です。
見てお察しいただけると思いますが、データの件数を(条件付きで)数える関数です。
これを使って「あるフィールドが自分より若いレコードを数えて+1」してやれば、
これが「連番」として機能してくれます。
レコードを比較するにはDLookup関数を使うと比較的楽です。
これもお察しいただけると思いますが、
ある条件に合致するレコードのフィールドを見に行ってくれる関数です。
これで「自分の連番より一つ大きい(小さい)連番を付加されたレコード」を見に行き、
それを以て、自分のフィールドと比較してやれば良いです。
この比較にはIIf関数が有効かもしれませんね。
各関数については、別途お調べいただけたらよろしいかと思います。
Webで検索をかけると相当の数がヒットしてきます。
今回はそんな時間は・・とおっしゃるのであれば、
素直に、添付された図のようにエクセルに吐き出して処理した方が早いかもしれません。
レポート上で・・と言うのであれば、比較的楽ではあるんですけどね。
普段は不可視である非連結であるラベルを用意しておいて、
条件が有ったら(日付が変わったらなど)可視にする、
と言うのを詳細のフォーマット時にでも書いておけば良いので。
以上、参考までに。
この回答へのお礼
お礼日時:2012/12/13 14:47
DCountで検索し、色々な式に当てはめて、実験した結果、
2)の質問の答えまでは、さすがにたどり着きませんでしたが、
1)については、思い通り作ることができました。
ヒントがなければ、時間ももっとかかったかと思います。
ご回答いただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 条件付書式 Sheet1からSheet2に転記した時の転記ミスを反映させたい 5 2022/05/21 09:52
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Excel(エクセル) 条件付き書式 別のシートで色付けされたセルデータの転記漏れを防ぐ書式を入れたい 4 2022/04/22 06:36
- Access(アクセス) アクセスで教えてください。 クエリで2日前を抽出する計算式を 入力して表示させると ちゃんとyyyy 1 2023/06/08 21:05
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) エクセルの条件付き書式について エクセルでカレンダーを作りました。縦に日付が並んでいて、横にスケジュ 3 2022/10/10 15:32
- その他(Microsoft Office) 【スプレッドシート】白色のセルをカウントしたい 2 2023/02/24 07:39
- Excel(エクセル) エクセル/列追加時、合計行の計算式 7 2023/03/15 11:14
- Excel(エクセル) マクロ、条件付き書式のfont.color 1 2023/03/28 01:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
180g重量版レコードとは? 180...
-
ファイルメーカー印刷時の改ページ
-
ファイルメーカーで一括入力す...
-
ファイルメーカでの条件付き画...
-
Accessのレポートの集計に条件...
-
Accessで写真(JPEG)管理がした...
-
FileMaker起動時に前回終了時の...
-
ACCESSのフォームで次のレコー...
-
FileMakerで特定のレコードのみ...
-
ADOで現在のレコードの次のレコ...
-
ラベルをクリックしてレコード...
-
LIKEとINを同時に使いたい
-
差込印刷で顧客別に複数行のデ...
-
accessのマクロで「一時変数設定」
-
アクセスのレポートのヘッダー...
-
Accessのクエリで1フィールドの...
-
「#エラー」の回避
-
accessのフォームに設置したボ...
-
Access2007でSQLの複数列副問い...
-
Access チェックボックスを使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷で顧客別に複数行のデ...
-
ADOで現在のレコードの次のレコ...
-
ACCESSのフォームで次のレコー...
-
Accessのレポートの集計に条件...
-
日付の加算・減算ってできますか?
-
アクセスデータベースのUnicode...
-
ホスト汎用機でのNDBアクセス方法
-
ACCESSのレコード操作で1つ前...
-
ファイルメーカーで最大シリア...
-
accessのマクロで「一時変数設定」
-
アクセスでのエクセルでいう行...
-
180g重量版レコードとは? 180...
-
ACCESSでのランダムのレ...
-
ファイルメーカーで検索条件の...
-
ファイルメーカーでレコード複...
-
PSQLで-- More --を表示しない方法
-
LIKEとINを同時に使いたい
-
access レポートで罫線...
-
Docmd.Findrecordで空白の検索方法
-
ファイルメーカーで該当件数を...
おすすめ情報