accessで前日の数値に今日の数値を足したいのですが。
(例)
日付    生産高 累計
2001/01/02 500  前日分+本日生産高
日付、生産高のテーブルを元にクエリでできるものでしょうか。
ひとつの日付に対してデータは1個だけとなっています。 

A 回答 (1件)

質問検索で


「アクセス97を使って新しいレコードと前のレコードとの間で演算したい」
をキーに検索してみて下さい。 
同じ質問を to-siro さんと言う方がしていらしゃるのです。
参考URL もあり、私もいい勉強になりました。
    • good
    • 0

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

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

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

Q日付型のテキストボックスに数値を入れて日付にしたい

アクセスのフォームの上にテキストボックスがあり、
書式はyyyy/mm/dd(aaa)になっています。

日付型の値を入力した際は問題ないのですが
例えば、20130720と入力したら、

このフィールドに入力した値が正しくありません。
例えば、数値型のフィールドに文字列を入力しました。

となります。

なので、

Private Sub 日付_BeforeUpdate(Cancel As Integer)

If Len(Me.ActiveControl.Value) = 8 Then
Me.ActiveControl.Value = Format(Me.ActiveControl.Value, "yyyy/mm/dd")
End If

End Sub

としてみたのですが、

更新前処理イベントが発動する前に、

「このフィールドに入力した値が正しくありません。
例えば、数値型のフィールドに文字列を入力しました。」

のエラーが出てしまうようです。

20130720の形の日付を入れても自動で日付型に変換するの方法はありますか?

Aベストアンサー

>更新前処理イベントが発動する前に、
このAccess君のチェックをかい潜るすべは知りません。

コントロールのデータタブ→定型入力に、0000/00/00;0;_
書式が自動的に変わってしまうので再度、yyyy/mm/dd(aaa)
にもどす。
で近いことは出来ます。
参考になりそうなところ
http://hatenachips.blog34.fc2.com/blog-entry-304.html?cat-2

もしくは、更新前処理ではなく変更時イベントで
Private Sub 日付_Change()
If Len(Me.ActiveControl.Text) = 8 And IsDate(Format(Me.ActiveControl.Text, "0000/00/00")) Then
Me.ActiveControl.Value = CDate(Format(Me.ActiveControl.Text, "0000/00/00"))
End If
End Sub
とかでも?

Q日付の編集(例えば2006/50を2006/2/19としたい)

例えば2006/50と表記されているデータを2006/2/19と表記したい場合、
どのような方法があるのでしょうか?

明日までに解決したいのですが、ご存知の方いらっしゃいましたら
どうかご教示くださいm(__)m

Aベストアンサー

こんにちは。
すみません、遅くなってしまいました。

(A1は06/50)

=DATE(2000*(LEFT(A1,2)-27<0)+LEFT(A1,2),1,MID(A1,FIND("/",A1)+1,6))

たぶん、こんな感じですね。
27というのは、昭和まで扱うという意味です。

最後の6 というのは、06/364 ←で、6文字が最高になるからです。
変わった式だという印象を受けると思います。

念のために、等号式は、文字列を演算をする限りは、数値になって比較できますが、
LEFT(A1,2)<27 は、比較できません。というか、文字列との比較になるので、必ず、LEFT関数のほうが大きくなってしまいます。

+LEFT(A1,2) も演算して数値になるとという原理が働いています。

Excelって不思議ですね。プログラムなどの常識の範囲とはちょっと違う計算のようです。

Qyyyy/mm/ddの日付に一括変換するマクロ

[セルの書式設定] の [表示形式]が標準(日付ではない)で単なる文字列となっている「mm-dd-yyyy」や「mm/dd/yyyy」のデータをマクロで「yyyy/mm/dd」の日付データに一括変換するマクロを教えてください。

たとえば、日付データが列Aにある場合にはDATE関数で、
=DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2))
でも変換可能ですが、対象ファイルが多数、各ファイルにも対象の列が多数、そしてファイルの更新頻度も多いため、DATE関数を使用することは現実的ではない事情があります。
このためマクロを使用して処理させたいです。

添付のサンプルの例で一括変更するマクロを教えてください。
なお、Excelは2007を使用しています。

Aベストアンサー

マクロといっても日付のデータであることをいちいち判断することも容易ではありません。
むしろ日付に変化したいセルの範囲を選んでから「区切り位置」の機能を使って変換してはどうでしょう。
例えばA1セルからA100セルにデータがあるとしたらそれらの範囲を選択したのちに「ホーム」タブの「データ」から「区切り位置」をクリックします。
表示の画面でウィザードの1/3画面、2/3の画面で「次へ」をクリックして最後の画面では列のデータ形式の項で「日付」にチェックを付けたのちに右の窓では MDY を選択してから「完了」ボタンをクリックします。

QACCESS クエリで同一人物の数値の合計表示は?

洗濯クエリで現在以下のように表示しています。


数値  生徒番号   氏名
4    100     田中
6    120     鈴木
4    100     田中
3    130     伊藤
6    120     鈴木

・・・

これを数値のみ合計して以下のように表示したいのです。


生徒番号 氏名   数値合計
100    田中   8
120    鈴木   12
130    伊藤   3

というように「数値」の部分のみ合計したいのです。
クエリのフィールドに 数値合計:Sum[(数値)]
としましたが、これではダメなようで・・・。

どうすればよかったでしょうか!?
教えてください!!!

Aベストアンサー

生徒番号と氏名をグループ化して数値を合計にすればいいと思います!

Q「今日の日付を含む」と言う条件のクエリ(yyyy/mm/dd hh:mm形式)

テーブル1の
日付フィールドには「yyyy/mm/dd hh:mm」形式にしているため
「2009/02/28 0:30」と入力されています。

クエリ1に
SELECT テーブル1.日付
FROM テーブル1
WHERE (((テーブル1.日付)=Date()));
とした場合は
「2009/02/28 0:30」
は表示されません。

テーブル1の
「2009/02/28 0:30」を「2009/02/28 0:00」にすれば
クエリ1を実行すると「2009/02/28 0:00」のレコードが表示されます。

どうすれば日付+時間の場合も日付で抽出することができるのでしょうか?
アクセス2003です。
よろしくお願いします。

Aベストアンサー

> WHERE ((テーブル1.日付)=Date())
部分を

WHERE (Format(テーブル1.日付,"yyyymmdd")=Format(Date(),"yyyymmdd"))
とし、時間を省いた部分で比較して見たらいかがですか。


このカテゴリの人気Q&Aランキング

おすすめ情報