あるフィールドの新規レコードと、一つ前のレコードとの間で演算し、その結果を別のフィールドに保存する方法を教えて下さい。たとえば自動車の走行距離など、つねに増え続けるデータの差を一定期間(1ヶ月単位など)で求め、保存したい。
初心者ゆえの質問かもしれませんが、どなたかよろしくお願いします。

A 回答 (3件)

マイクロソフトの技術情報に次のものがあります。


[AC97] 前または次のレコードのフィールドを参照する方法
最終更新日: 1999/07/15
文書番号: J049050
ご参考になれば幸いです。
ちょうど私も研究中です。

参考URL:http://www.microsoft.com/JAPAN/support/kb/articl …
    • good
    • 0

>自動車に例えると1台だけの場合はいいのですが、実際は複数・・・



うーん。少し難しいですね。後は応用だと思います。
例えば、元となるテーブルを車種別に抽出する「テーブル作成クエリー」を作り、
作成したテーブルにオートナンバーの主キーをつけて、
車種別に実行してはどうでしょうか?

問題は車種が多くなると管理するテーブルが増えてしまうと言うことです。
そこのところはテーブル名の命名基準を決めて、
テーブル名の頭数文字が同じなら、作業用のテーブルと言うことで、
一括削除する削除クエリーなり、マクロなりを作ればよいのではないでしょうか。
アクセスのモジュール(かなり難しいですが)に挑戦してもよいかもしれません。
    • good
    • 0

オートナンバー型のインデックス(主キー)が付いたテーブルAを作成します。


クエリー1で「オートナンバー + 1」となるフィールドを定義します。
Aとクエリー1をオートナンバーでひもつけ(結合)して後は
求めたいフィールド - 求めたいフィールド としたフィールド式を作れば、
当レコード - 前レコードとなります。

オートナンバーのついたクエリーを作ることはできないようです。

この回答への補足

VT250Fさんへ
ありがとうございました。早速ためしてみました。

しかし自動車に例えると1台だけの場合はいいのですが、実際は複数であるため、テーブルの中で他の車のデータとの間で演算を行ってしまいうまくいきません。
車別に解決できる方法はありませんか。

補足日時:2001/02/09 16:27
    • good
    • 0
この回答へのお礼

ありがとうございました。
教えていただいた方法で1台の車の場合については解決できましたが、テーブルに複数の車のデータがあり、当然オートナンバーを基準に計算した結果うまくいきません。よろしかったら解決方法をお教え下さい。

お礼日時:2001/02/09 17:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフィールド数の多すぎる・フィールド数が一定でないテーブルのデータ結合の仕方?

私は、accessについてあまり詳しくないものなのですが、仕事上50近くあるデータを一つにまとめたいんです。
データは2つありまして、
1.それぞれのテーブルが微妙にフィールド数が異なる場合の結合
 例)・Aのテーブルのフィールド名 
   名前 クラス名 出身県 出身コード 血液型 性別
   
   ・Bのテーブルのフィールド名
   名前 出身県 血液型 性別

   ・Cのテーブルのフィールド名
   名前 クラス名 出身コード 血液型 
  ⇒このように微妙に異なる。しかもレコード数がかなり多いのです。これは、ユニオンクエリは使えないですよね?何かいい方法はないでしょうか?


2.テーブルの構造は同じなのですが、フィールド数が多くてユニオンクエリを使おうとすると、『フィールド数が多すぎる』とエラーメッセージがでてしまう。この場合の対処方法でいいのはないでしょうか?

なにぶん、私はaccessをあまり使わないのでわかりにくい質問だと思いますが、どなたかすみませんが教えてください。お願いします。

Aベストアンサー

> これは、ユニオンクエリは使えないですよね?

ユニオンクエリで、フィールドを「*」で省略することはできなくなりますが、
表示するフィールドを列挙する形であれば、対応可能です。
(但し各Select文で、不足するフィールド分のダミー列の追加が必要)

【例】
Select 名前, クラス名, 出身県, 出身コード, 血液型, 性別 From A
Union
Select 名前, "(不明)", 出身県, "(不明)", 血液型, 性別 From B
Union
Select 名前, クラス名, "(不明)", 出身コード, 血液型, "(不明)" From C;

※当該テーブルがデータを持たない時に「(不明)」と表示させる場合。


> 『フィールド数が多すぎる』とエラーメッセージがでてしまう。

とりあえず、45フィールドほどのテーブルを作成してテストした限りでは、
そのメッセージは表示されませんでした(汗)

もしも、必ずしも常に全フィールドのデータが必要ではないなら、ひとつの
手段としては、上記のように必要なフィールドに限定してユニオンクエリを
作成する、という方法があるかと思います。
(一旦作業用のテーブルを作成し、これに順次、追加クエリで他のテーブル
のデータを追加、というのも考えましたが、なんとなくこちらでも同様に
フィールド数の上限を超えてしまいそう・・・(汗))


あまりお役に立てそうにありませんが(汗)、参考までに。

> これは、ユニオンクエリは使えないですよね?

ユニオンクエリで、フィールドを「*」で省略することはできなくなりますが、
表示するフィールドを列挙する形であれば、対応可能です。
(但し各Select文で、不足するフィールド分のダミー列の追加が必要)

【例】
Select 名前, クラス名, 出身県, 出身コード, 血液型, 性別 From A
Union
Select 名前, "(不明)", 出身県, "(不明)", 血液型, 性別 From B
Union
Select 名前, クラス名, "(不明)", 出身コード, 血液型, "(不明)" From C;

※当該テーブル...続きを読む

Qaccess前月差分クエリ書き換えたくない フィールド1 年月日 フィールド2 商品名 レコードは月

access前月差分クエリ書き換えたくない

フィールド1 年月日
フィールド2 商品名

レコードは月次で年度単位で持ち、毎月、先月分が今月に追加されます。

毎月、前月と前々月分の商品の個数の差を計算します。

フィールド1をformat関数で年月にし、グループ化したものを、201701-201612みたいにクエリを書いて
計算させています。

まずformatが良いのかmonthが良いかも分からないのですが、毎月の差分を取るクエリを書き換えたくなく、元テーブルから計算しやすいように加工するクエリをどう持てば良いか教えて下さい。

Aベストアンサー

以前回答させていただいた
https://oshiete.goo.ne.jp/qa/9605499.html

年月から1ヵ月の期間を求めるなら
DateSerial(Year([年月]),Month([年月]),1)
DateSerial(Year([年月]),Month([年月])+1,1)-1

上は年月の1日を求める
下は年月の翌月1日を出し、その前日(-1)を求めることで末日を求めている

先月を求めるなら
DateSerial(Year([年月]),Month([年月])-1,1)
yyyymmの形にするなら
Format(DateSerial(Year([年月]),Month([年月])-1,1),"yyyymm")

先々月を求めるなら
DateSerial(Year([年月]),Month([年月])-2,1)
yyyymmの形にするなら
Format(DateSerial(Year([年月]),Month([年月])-2,1),"yyyymm")

Qaccess2010 閾値以上や以下のレコードの点滅やハッチング あるフィールドに%表示のレコードが

access2010

閾値以上や以下のレコードの点滅やハッチング




あるフィールドに%表示のレコードがあります、この%が10%以上なら点滅やハッチングとするような命令はどう書けば良いか教えて下さい。

フィールド名:故障率
配下レコード内容:0%から100%

Aベストアンサー

点滅等ではないですが強調するだけでいいのなら条件付き書式で色を変えてみては?
https://support.office.com/ja-jp/article/%E6%9D%A1%E4%BB%B6%E4%BB%98%E3%81%8D%E6%9B%B8%E5%BC%8F%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%BC%B7%E8%AA%BF%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B-7f7c0bd4-7c37-421d-adad-a260125c8129

Q演算フィールドが、パラメータクエリになってしまうのはなぜ?

アクセス2003を使っているのですが、演算フィールドを作るために、フィールド名に[]を使うと、パラメータクエリとして動作してしまうのですがなぜでしょうか?
同じように作り直すと、正常に、演算フィールドとして、動作するのですが、パラメータクエリと演算フィールドの式は、同じ[]を使いますが、どこが違うと、どっちになるのでしょうか?
今は、作ってみないと、どっちになるかわかりません。

Aベストアンサー

[]内の名前がテーブルに存在しないのでは?
もしくは全角と半角が混在してるとか一文字入れ違ってるとか?

Qアクセスクエリで以前あった演算フィールドを復活させたい

こんにちは。アクセスについてご質問させていただきます。

クエリ実行の際
「表示」のチェックボックスのチェックを外した状態で「保存」し
後からこのクエリを開いたら
チエックを外したフィールドごと消えてしまっていました。
復元方法があれば教えてください。
ちなみに、復元したいフィールドは「演算フィールド」です。

どうぞよろしくお願いします。

Aベストアンサー

できません

Accessは初心者にやさしいということを売りにしたデータベースで
SQLを勉強しないでもクエリが作れます
そのためのGUI(グラフィックユーザーインタフェース)が
クエリデザインビューです

Accessはデザインビューで入力された情報を元に
SQLを作成し、格納します

作成したものをデザインビューで開くときには
保存されているSQLからデザインビューを再現します

>「表示」のチェックボックスのチェックを外した状態で「保存」
し、並び替えや抽出条件、グループに指定していないものは
SQLに残りませんから再現することはできません


人気Q&Aランキング

おすすめ情報