- 締切済み
アクセス 違う日付の計算
こんにちはどなたか教えていただけませんか? クエリで例えばこのような事は可能でしょうか? 例 日付 個数 残 (1)2011/3/10 100 10 (2)2011/3/20 10 1 このような計算がしたいです。 (2)の残/(1)の個数 出来れば簡単な方法があれば教えて頂けないでようか? 後、レポートには、他のクエリを入れこむ事は出来ないのでようか? 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
2011/3/10のレコードと、2011/3/20は、本当に直ぐ次にあるのか。 または日付全日にでーたがあり、10と20日と(0のつく日)を、例として2つ挙げただけなのか。 それによっって難しさが変わる。 ーー エクセルもそうなのだが、アクセスはレコード的に、前後のレコード(のフィールド)間の計算はやりにくい。エクセルなら、式を工夫して何とかなる。アクセスではそれが出来ない。 (1)VBA VBAで組めば、レコードを読み、変数にフィールドの値を(プログラムが終わるまで)保持できるから、まだ考え方としてはやさしい。 SQLでも行間の計算はやりにくい、同じような事情である。 (2)関数でそのレコードの特徴(やID、本件では日付)でそのレコードを探して、結果を使う。既に出ているご回答 (3)2フィールド間の計算は式を入れるのが割合簡単なので、データをTRANSPOSEして行と列を入れ替えて、列間の計算にしてしまう。ただし項目数が縦と横の2項目、データ数も少ないなどのもの向きではないかな。(詳細略)
- mitarashi
- ベストアンサー率59% (574/965)
残数を、直前の日付のレコードの個数で割った値をクエリで求めたい、という事なら、テーブル名をテーブル1とした時、 式1: [残]/DLookUp("個数","テーブル1","日付 = #" & Nz(DMax("日付","テーブル1","日付<#" & [日付] & "#"),#1900/01/01#) & "#") でできます。下記をアレンジしたのみですので、解説はそちらをご覧下さい。 http://okwave.jp/qa/q4345891.html >レポートには、他のクエリを入れこむ事は出来ないのでしょうか? こちらは別の質問をたてて具体的に説明される事をお勧めします。