• 締切済み

アクセス 違う日付の計算

こんにちはどなたか教えていただけませんか? クエリで例えばこのような事は可能でしょうか? 例 日付      個数   残 (1)2011/3/10  100   10 (2)2011/3/20  10    1 このような計算がしたいです。 (2)の残/(1)の個数 出来れば簡単な方法があれば教えて頂けないでようか? 後、レポートには、他のクエリを入れこむ事は出来ないのでようか? 宜しくお願い致します。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

2011/3/10のレコードと、2011/3/20は、本当に直ぐ次にあるのか。 または日付全日にでーたがあり、10と20日と(0のつく日)を、例として2つ挙げただけなのか。 それによっって難しさが変わる。 ーー エクセルもそうなのだが、アクセスはレコード的に、前後のレコード(のフィールド)間の計算はやりにくい。エクセルなら、式を工夫して何とかなる。アクセスではそれが出来ない。 (1)VBA VBAで組めば、レコードを読み、変数にフィールドの値を(プログラムが終わるまで)保持できるから、まだ考え方としてはやさしい。 SQLでも行間の計算はやりにくい、同じような事情である。 (2)関数でそのレコードの特徴(やID、本件では日付)でそのレコードを探して、結果を使う。既に出ているご回答 (3)2フィールド間の計算は式を入れるのが割合簡単なので、データをTRANSPOSEして行と列を入れ替えて、列間の計算にしてしまう。ただし項目数が縦と横の2項目、データ数も少ないなどのもの向きではないかな。(詳細略)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

残数を、直前の日付のレコードの個数で割った値をクエリで求めたい、という事なら、テーブル名をテーブル1とした時、 式1: [残]/DLookUp("個数","テーブル1","日付 = #" & Nz(DMax("日付","テーブル1","日付<#" & [日付] & "#"),#1900/01/01#) & "#") でできます。下記をアレンジしたのみですので、解説はそちらをご覧下さい。 http://okwave.jp/qa/q4345891.html >レポートには、他のクエリを入れこむ事は出来ないのでしょうか? こちらは別の質問をたてて具体的に説明される事をお勧めします。

関連するQ&A

  • ACCESSのクエリで日付を計算したい

    どうか宜しくお願い致します。 ACCESSのデータで、日付が入力されている列があります。 その日付から2ヶ月後の月を新しい列に自動に表示させたいと 思っています。 例) 2008/1/1~2008/1/31までのデータは、新しい列に3月と表示させたい。 2008/2/1~2008/2/28までのデータは、新しい列に4月と表示させたい。 クエリを作成し、新しい列を作ってそこへ計算式を入力すればいいのかな?と思っているのですが、どのような計算式を入れればいいのか分かりません・・・。 どなたか詳しい方、アドバイスお願い致します。

  • Accessのレポート上での計算

    現在4つのフィールドで=DCountを使ってリストの個数を返すクエリを組みました。 それをレポートで表示したのですが、この各フィールドの個数を合計したいんです。 テーブルB | A | B | C | D | ←このA~Dにはコンボボックスでタイプが入っています。 これから クエリ 式1:=DCount("*","テーブルB","[A]='タイプ1'") クエリを実行すると 1      式2:=DCount("*","テーブルB","[A]='タイプ2'")  クエリを実行すると 0      式3:=DCount("*","テーブルB","[A]='タイプ3'")  クエリを実行すると 1 が表示 といったようにクエリで選ばれている個数を算出しています。 このクエリを使ってレポートを作ったのですが、 レポートフッターに =Sum([式1]+[式2]+[式3]) という式を入れてレポートを表示すると 「101」と返ってきてしまいます(表示されている数字が順番にならんでる)。 目的としては「2」にしたいのですが、式が違うのでしょうか? 初心者バリバリの質問で申しわけありませんが、ご教授いただけますようお願いいたします。

  • access2000にてクエリで日付計算

    アクセスのテーブルにて 開始時間 00:00 と終了時間 99:99 を持っています クエリで 終了時間-開始時間を計算し 実働時間 00:00 を出したいのですが 普通に計算すると0.023088・・・とかの数字になります 実働時間を計算する方法はありますでしょうか? 開始時間 終了時間ともデータ型は 日付/時刻型になってます

  • Access2003の質問です。

    まず、日報を作成しました。 【担当者】****              2008年07月 日 曜日 工事コード 工事名  d h 残 夜 1  火  00-000   ●工事  1 2  水  00-001   ▲工事        3 日報を元にユニオンクエリからクロス集計クエリを作りました。 工事コード 00-000 担当者 項目  7/1 7/2 ・・・・・ ****   d  1      1   1 ****   h            ****   残   ****   夜 ++++   d  1   1   1   ++++   h   ++++   残 ++++   夜            1  1 工事コードで連結していて、だれがいつ現場に行ったか分かるものです。 この作り方では 横項目である日付が 工事コードによって増減があるため (例:○工事は7/1~8/10  ●工事は7/20~9/10)  レポートにした時に増減があるたびに作り直す必要があるようです。又 パラメーターがレポートで使用できません。 何かいい方法はないでしょうか?

  • 【Access2003 日付表示について(2)】

    検索フォーム(帳票フォーム)にて、任意で期間を入力してレコードを抽出しています。 例) 『日付1~日付2』 そして、この抽出したレコードをレポートとして印刷してるのですが レポートの表題(レポートヘッダー)の部分(添付画像赤枠部)にその任意で入力した日付も反映させて表示したいのですが可能でしょうか? 可能であれば、お知恵を拝借させて頂きたいです。 宜しくお願い致します。

  • アクセスのレポートに

    こんにちは、どなたか宜しくお願いします。 アクセスのクエリで例えば 日付 種類 個数1 個数2 10日 A  10   200 10日 B  15   200 10日 C  20   200 20日 A  30   200 20日 B  50   200 20日 C  30   200 とあった場合20日の個数1(ここでは30,50,30)と個数2は10日からの分を A 30×400 という具合に計算させたいのですが、できますでしょうか? わかりにくくて申し訳ありません。 宜しくお願い致します。

  • Accessで累計計算する方法を教えてください。

    現在Access2000で、在庫管理をしています。 添付ファイルのように(1)~(3)のようなテーブルがあります。商品を発注するにあたり(3)現在庫の確認と(2)発注済み分の確認、(1)受注内容の確認などと効率の悪い状況です。 そこで各商品ごとに入出庫をみることができるレポートを出力できるようにしたいと思います。例えば、商品Bであれば(4)のようなレポートを出力したいと思います。 (1)と(2)のテーブルのフィールドをユニオンクエリーで結合させるところまでは何とかできたのですが、肝心な"在庫累計"をうまく計算できません。添付ファイルの(A)と(B) 色々調べると、Dsum関数があるようなのですで、このユニオンクエリーをもとに選択クエリーをつくりこの関数を使ってみたのですが(4)のレポートのようにはいきません。"期日"を条件にしたのですが同じ日だとすべて合計されてしまします。また、出力するレコードの順番は日付で昇順、同じ日付のレコードは入庫(プラスのレコード)を上位に、続いて出庫(マイナスのレコード)の順番にしたいです。 (4)のようなレポートが作成できれば方法は問わないです... なにかいい方法をアドバイスをいただけますでしょうか。 宜しくお願いいたします。

  • 【Access2010】桁数バラバラの日付を統一

    添付画像のような日付データ(ピリオド区切り)があります。 データ(csvファイル)は原則毎日インポートしているので、日付の異なるデータが混在することはほとんどありませんが、まれに多忙・有休などで数日間インポートしなかった場合は混在してしまいます。 その場合は、csvファイルをコピーして桁数ごとにインポート→桁数ごとの更新クエリーを実行し数字8桁にする→更新クエリーで日付型にしています。  <例1:「***.*.*」の場合(日付更新用へ)>   桁数ごとの更新クエリー    → Left$([日付],4) & "0" & Mid$([日付],6,1) & "0" & Right([日付],1)  <例2:「***.**.**」の場合(日付更新用へ)>   桁数ごとの更新クエリー    → Left$([日付],4) & Mid$([日付],6,2) & Right([日付],2)  <共通>   日付型への更新クエリー    → Left$([日付更新用],4) & "/" & Mid$([日付更新用],5,2) & "/" & Right$([日付更新用],2) 実行すべき桁数ごとの更新クエリーを間違えるとインポート作業からやり直さなければならず、非常に面倒です。 桁数が違っても同じクエリーで数字8桁にする方法はありませんか?フィールド・クエリーの追加はいくらでも可能です。

  • Accessで、24時間以上の日付/時刻型の計算

    Accessで、24時間以上の、47時間59分までの日付/時刻型の計算方法はありませんか? 例:シフト勤務 17:0:000~33:00:00 休憩01:00:00 の勤務時間を計算するために33:00-17:00-01:00:00= ・・勤務時間という計算をしたいのですが、まず33:00:00値を日付/時刻型で持つことができないので、テキスト型で持たせると Accessで計算が出来ません。 よい方法はありますか? つたない質問で申し訳ありませんがよろしくお願いします。

  • access2003初心者です。50商品の在庫管理をしています。

    access2003初心者です。50商品の在庫管理をしています。 作成したのは ・商品テーブル(商品コード、商品名) ・受注テーブル(日付、商品コード、個数) です。 受注テーブルには受注があった商品のデータしか入力していません。 しかしレポートでは、すべての商品を並べて 「受注がない商品については、数量を0」 としてレポートを作成したいと考えています。 レポートを作成するには、「元となるテーブルやクエリが必要になってくる」と本に書いてあったのですが、 この元となるクエリを作成することができません。 作成したいクエリは次のとおりです。   日付   商品 個数 2008/04/01 商品01 2 2008/04/01 商品02 0←このデータ(日付、商品、個数)は受注テーブルにはありません。以下同じ。 ・ ・ ・ ・ ・ ・ 2008/04/01 商品50 2 2008/04/02 商品01 1←ここから日付が翌日になります。 2008/04/02 商品02 1 ・ ・ ・ ・ ・ ・ 2008/04/02 商品50 0 2008/04/03 商品01 2←ここから日付が翌々日になります。 2008/04/03 商品02 2 ・ ・ ・ ・ ・ ・ データがないものに対して、 自動で日付を入力したり、個数を0にしたりしたいのですが、 どのような抽出条件またはSQLなどを書いたらいいのかわかりません。 よろしくお願いします。

専門家に質問してみよう