電子書籍の厳選無料作品が豊富!

ACCESSの勉強真っ最中の初心者です。
宜しくお願いします。
以下のようなデータがあるとします。このデータは購入日で並び替えされていて、購入部署ごと予算が決まっており10000円までとなっております。自分がやりたい事は部署ごとに「残り予算額」を知りたいので以下のようにできないかを考えていたのですが・・・。
良い方法があれば教えてください。宜しくお願いします。
購入日   購入部署  購入価格 残り予算 予算
2007/3/1   A     100   9900  10000
2007/3/3   B     100   9900  10000
2007/3/4   C     200   9800  10000
2007/3/5   A     300   9600  10000
2007/3/8   C     100   9700  10000
2007/3/9   B     400   9500  10000 

A 回答 (5件)

テーブル T1 が


購入日   購入部署  購入価格
2007/3/1   A     100 
2007/3/3   B     100 
2007/3/4   C     200 
2007/3/5   A     300 
2007/3/8   C     100 
2007/3/9   B     400 

テーブル T2 が
購入部署 予算
  A  10000
  B  1000
  C  10000

だとしたら、サブクエリ(副問い合わせ)にして
SQLビューで表すと

SELECT T1.購入日, T1.購入部署, T1.購入価格,
T2.予算-
(
SELECT SUM(T1x.購入価格)
FROM T1 AS T1x
WHERE T1x.購入部署=T1.購入部署 and T1x.購入日<= T1.購入日
) AS 残高,
T2.予算
FROM T1
INNER JOIN T2 ON T1.購入部署 = T2.購入部署
ORDER BY T1.購入日;

となると思います。
Access2002で確認。

この回答への補足

有難うございます。
試したところうまくいきました。が、残高はマイナス(下の-100のように)も出したいのですがどうすればよいのでしょうか??
購入日   購入部署  購入価格 残り予算 予算
2007/3/1   A      100    9900   10000
2007/3/3   B      100    9900   10000
2007/3/4   C      200    9800   10000
2007/3/5   A      10000   0(←-100) 10000
宜しくお願いしますm(_)m

補足日時:2007/03/18 03:10
    • good
    • 0

こちらでは出来ましたけど?


どのような結果が出ましたか?
レコードが保存されていない為(レコードセレクタが鉛筆マーク)とかでは?

この回答への補足

すみません、勘違いしてました。(^^;;しっかりと"OK"でした。
あと、購入日をクエリで(>=2007/4/5のように)指定して下のようにやるにはどうしたらよいのか教えていただけませんか??(月がまたがった時とか指定したいのです)度々ではありますが宜しくお願いします。
購入日   購入部署  購入価格 残り予算 予算
2007/3/1   A     100   9900  10000
2007/3/3   B     100   9900  10000
2007/3/4   C     200   9800  10000
2007/4/5   A     300   9600  10000
2007/4/8   C     100   9700  10000
2007/4/9   B     400   9500  10000 
             ↓
2007/4/5   A     300   9700  10000
2007/4/8   C     100   9900  10000
2007/4/9   B     400   9600  10000 

補足日時:2007/03/18 12:02
    • good
    • 0
この回答へのお礼

この度は有難うございました!
また、教えてください。

お礼日時:2007/03/18 23:39

部署毎の累計として、各レコード毎の購入価格を元にしてレコード毎に残り予算を計算させたいようですが、これをやるためにはVBAの知識が必要になると思います。

考え方としては予算から購入価格を引いたものを変数(購入部署毎に変数A,B,Cが必要になるでしょう)に格納しておき、その変数から購入価格を引いて累計の残り予算を求める形になるでしょう。
フォームかレポートを作成して、そこでプログラムを組む形になるかと思います。

まあ、全くプログラムを作ったことがない初心者なら、毎日勉強して2,3年目ぐらいに理解できるレベルかと思います。
ACCESSはこういう累計処理は苦手です(標準のやり方では簡単にはできないです)。こういった表は初心者ならExcelのほうが簡単です。
    • good
    • 0
この回答へのお礼

有難うございます。
今までEXCELのVBAは多少やっていたので少しは抵抗ないかと思います。(まだまだ勉強不足ですが・・・(汗))
VBAでやるとどんな感じになるのでしょうか??

お礼日時:2007/03/18 03:13

まずデータベースという観点から、テーブルを分けてはいかがでしょうか?



1.購入実績テーブル

購入日   購入部署  購入価格
2007/3/1   A     100
2007/3/3   B     100
2007/3/4   C     200
2007/3/5   A     300
2007/3/8   C     100


2.予算テーブル

購入部署 予算
A    10000
B    10000
C    10000

のようなイメージ。


まずクエリを作成します。(これをクエリ1する)
購入実績テーブルを購入部署でグループ化する。
(購入価格の合計を出しておく)


ここでさらに予算の消化を計算させるクエリを作成する。(これをクエリ2とする)
予算テーブルの予算からクエリ1で出した購入額実績の合計を引く、これは関数をつかう。
※予算テーブルとクエリ2のリンクを張るときはもちろん購入部署を使ってください。

最後はレポートで
購入日   購入部署  購入価格 残り予算 予算
2007/3/1   A     100   9900  10000
2007/3/3   B     100   9900  10000
2007/3/4   C     200   9800  10000
2007/3/5   A     300   9600  10000
2007/3/8   C     100   9700  10000
2007/3/9   B     400   9500  10000 

を作成すればいいのではないでしょうか?
レポートの作成方法は調べてみてください。
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2007/03/18 03:14

購入実績の表と、予算の表を分けましょう。


購入実績のほうはご質問の予算部分だけをとっぱらったもの、
予算表のほうは「部署」と「予算」だけのテーブル。
「購入部署」と「部署」でリレーション作成。
あとはクエリにて実現できると思います。
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2007/03/18 03:14

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