部署ごとの残り予算額を知るための方法について考えています

このQ&Aのポイント
  • ACCESSを勉強している初心者です。以下のデータは購入日で並び替えられ、各部署の予算が10000円までとなっています。私は部署ごとの残り予算額を知りたいと考えています。
  • 具体的なデータは購入日、購入部署、購入価格、残り予算、予算の情報があります。良い方法があれば教えてください。
回答を見る
  • ベストアンサー

ACCESSについて知恵をおかし下さい☆

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 

  • AKI78
  • お礼率63% (70/110)

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

テーブル 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で確認。

AKI78
質問者

補足

有難うございます。 試したところうまくいきました。が、残高はマイナス(下の-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

その他の回答 (4)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.5

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

AKI78
質問者

お礼

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

AKI78
質問者

補足

すみません、勘違いしてました。(^^;;しっかりと"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 

  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.3

部署毎の累計として、各レコード毎の購入価格を元にしてレコード毎に残り予算を計算させたいようですが、これをやるためにはVBAの知識が必要になると思います。考え方としては予算から購入価格を引いたものを変数(購入部署毎に変数A,B,Cが必要になるでしょう)に格納しておき、その変数から購入価格を引いて累計の残り予算を求める形になるでしょう。 フォームかレポートを作成して、そこでプログラムを組む形になるかと思います。 まあ、全くプログラムを作ったことがない初心者なら、毎日勉強して2,3年目ぐらいに理解できるレベルかと思います。 ACCESSはこういう累計処理は苦手です(標準のやり方では簡単にはできないです)。こういった表は初心者ならExcelのほうが簡単です。

AKI78
質問者

お礼

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

回答No.2

まずデータベースという観点から、テーブルを分けてはいかがでしょうか? 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  を作成すればいいのではないでしょうか? レポートの作成方法は調べてみてください。

AKI78
質問者

お礼

有難うございます。

noname#91724
noname#91724
回答No.1

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

AKI78
質問者

お礼

有難うございます。

関連するQ&A

  • Accessの集計方法

    いつもお世話になっております。 今回、Accessを作成している中で行き詰ってしまったので質問させて頂きます。 名前1 受注額1 予算1 外注1 名前2 受注額2 予算2 外注2・・・ A    100    80   20   B    200   40   60 C     90    80   10   A     20   80   30 B    100    50   30   A    400   90  100 という感じにデータが記録されています。 このデータを利用してA、B、Cそれぞれの受注額、予算、外注の計を出したいのです。 クロス集計などを利用しようとしたのですがうまくまとめきれず悩んでいます。 何かいい方法は無いでしょうか?

  • Access2003のレポートについて

    Access2003のレポートで質問です。 テーブルに次のようなデータ(例)があります。 部署   氏名       性別 A     あああああ   男 A     いいいいい   男 A     ううううう     女 B     えええええ   男 B     おおおおお   男 B     かかかかか   女 C     ききききき    男 C     くくくくく      男 C     けけけけけ   女 これをレポートで図のように、部署をグループ化して下に氏名と性別を表示したいと考えていますが、やり方が分からず困っています。 どうかご教示をお願いします。

  • ACCESS で、古い日付順に抽出したい

    こんにちは。質問ばかりですみません。 EXCEL から ACCESS に移行するため、四苦八苦している者です。 たとえば下のようなCSV データがあったとします。 品番,納入日 A001,2006/1/24 A001,2006/2/10 A001,2006/2/13 A001,2006/2/14 A001,2006/2/15 B002,2006/1/26 B002,2006/2/3 B002,2006/2/14 B002,2006/2/24 B002,2006/2/27 C003,2006/1/27 C003,2006/2/7 C003,2006/2/9 C003,2006/2/14 C003,2006/2/21 品番に対して、日付は納入日です。 このデータに対して、以下のように一番近い日付だけ抽出し、納入日一覧クエリーを作りたいです。 品番,納入日 A001,2006/1/24 B002,2006/1/26 C003,2006/1/27 EXCEL だと日付順に並び替えてから、別シートからVLOOKUP で上から抽出してくれますよね。 アイデア下さい。 また、どんな言葉で検索していいかわからなくて、既出だったらごめんなさい。 ACCESS 97 で、WINDOWS 2000です。 よろしくお願いします。

  • マイクロソフトのアクセスでいくつかのデータと組み合わせて、

    マイクロソフトのアクセスでいくつかのデータと組み合わせて、 数値を並べたり、○×をつけることは可能でしょうか? アクセス初心者です。 もし分る方がいたら教えていただきたいです。 (1)【3月の来店者】 Aさん Bさん Cさん Dさん (4)【3月のA購入者】 Aさん Cさん Dさん (5)【3月のB購入者】 Cさん Dさん (6)【来店者の来店回数】 Aさん 1 Bさん 4 Cさん 7 Dさん 2 上記データを使って下記のようなデータベースを作りたいと考えています。 来店者 A購入 B購入 来店回数 Aさん ○ × 1 Bさん × × 4 Cさん ○ ○ 7 Dさん ○ ○ 2 (1)来店者から(2)Aを買った人の抽出や (1)来店者の(4)来店回数を出すのは 選択クエリを使いだすことができたのですが このようにすべての来店者のデータをリスト化することは可能でしょうか? すべてのデータ抽出後にIF関数などを使いエクセルでなら行えるかもしれないのですが データが180万行あるのでアクセス内で行えたら嬉しいです。 説明がわかりにくくて申し訳ないです。。。 もし分る方がいたら助けていただきたいです。 宜しくお願いいたします。

  • 並び替えするには。。

    エクセルのデータの並び替えが出来なく困っています。 色々と試していますが、並び替えが出来ません。 以下の様に、A2,B2には一番少ないデータが常に来ます。 それ以下のA,Bのデータの個数は不揃いです。 これらのデータをC,DでDを基準に昇順で並び替える様にしたいです。  A     B        C        D   1品物     個数    品物     個数(昇順) 2りんご    2      =A2      =B2   3みかん    15      柿       3 4バナナ    25      マンゴー    5   5柿       3       りんご    10 6マンゴー    5       みかん    15   宜しくお願いします。

  • Accessデータベースの作成について

    入力フォームで大分類(A)と小分類(B)、そしてサイズ(C)とサイズ(D)のどちらか一方を入力すると、価格(E)が出てくるデータベースをアクセスでつくりたいのですが、超初心者の為、参考書片手に毎日悪戦苦闘しています。アクセスに詳しい方、教えていただけますでしょうか。 以下、内容です。 Aは3種類あり、種類○○は数字の「1」、種類××は数字の「2」のように、数字で入力をしたいです。 Bは数値を入力します。整数、小数点ありのもの合わせて10種類あり、10種類中のいずれかを入力します。 CとDの入力も数値です。整数の場合も小数点の場合もあります。 AとBは必須入力、CとDはどちらか一方の数値を入力します。(入力はAとBとC、もしくは AとBとD) Aの3種類別にBの種類毎のCの価格テーブル「T_価格」はあります。 Cは入力数値X「T_価格」でEを求めます。 DはD-B÷1.5XT_価格でEを求めます。 使用しているアクセスのバージョンは2007です。 どうぞよろしくお願いします。

  • Accessのテーブル

    普段はExcelで簡単なデータ入力くらいしかしていない者です。 Accessのテーブルで A1 A2 A3 … A30 B1 B2 … B30 C1 C2 … C30 となっているデータを A1 B1 C1 A2 B2 C2 A3 B3 C3 ・   ・   ・ ・   ・   ・ A30 B30 C30 と並び替えなければいけないのですが、方法がわかりません。 Excelに変換したほうがよいのでしょうか。 よい方法がありましたら教えていただきたいです。 よろしくお願いします。

  • Accessで金銭管理をするときの残高の表示方法

    最近アクセスを使い始めた初心者です。 以下のような複数名(人数が増えることもあります)についての金銭管理を行っています。 ID   氏名ID    月日     氏名    氏名番号   適用    入金額   出金額    残高 1    1   2009/01/25   Aさん       1001    入金     3000     0     3000 2    1    2009/01/25    Aさん      1001   お菓子       0    300     2700 3    1    2009/01/26   Aさん       1001    切手       0    100     2600 4    1    2009/01/30   Aさん       1001    修理       0    4000     -1400 5    1    2009/02/01   Aさん       1001    入金    6000       0     4600 9     1     2009/02/20   Aさん       1001      パン       0      100     4500 11   1     2009/02/25    Aさん     1001     入金     200         0     4700 6     2    2009/01/10     Bさん    1002      入金     1000        0     1000 7    2    2009/01/11   Bさん      1002      雑誌        0       600      400 8     2    2009/03/25    Bさん      1002    鉛筆        0       500      -100 10    3    2009/03/10    Cさん     1003    入金         500       0       500 アクセスのクエリ場面で残高に 残高: DSum("Nz([入金額],0)-Nz([出金額],0)","テーブル","([月日]<#" & [月日] & "# or 月日=#" & [月日] & "# and ID<=" & [ID] & ") and 氏名='" & [氏名] & "'") のように計算を行わせて上記のような計算結果を得ました。このあとAさん、Bさん、Cさんのそれぞれ最後の残高だけを次のように表示するようにプログラムしたいと思っています。 ID   氏名ID   月日    氏名    氏名番号   適用   入金額   出金額    残高 11    1   2009/02/25    Aさん     1001     入金     200       0      4700 8     2   2009/03/25   Bさん      1002     鉛筆      0      500      -100 10    3    2009/03/10   Cさん     1003    入金        500       0      500 例えば今日(3月25日)までの残高計算をしようとして、月日の抽出条件に=Date() と条件を入れても ID   氏名ID   月日    氏名    氏名番号   適用   入金額   出金額    残高 8      2   2009/03/25   Bさん      1002    鉛筆      0     500     -100  となりBさんのデーターしか表示されません、なんとかAさんとCさんのデーターも表示したいのですが、Aさんが2月25日、Cさんが3月10日までしか、まだデーターがないのでどうにも表示されないようです。 どうしたら3人とも表示できるようになるのか、どなたか教えてください。 どうぞよろしくお願いいたします。

  • アクセスで関数は?

    アクセスのデータAに100と入力し、 データBに30と入力した時に、 データCにデータA-データBが自動的に入るように 関数みたいなものはできないでしょうか? 単純なことなのですが、宜しくお願いします。

  • Access2002について

    Access2002で次のようなデータがあり、 フィールドA |フィールドB | フィールドC --------------------------------------------  123    |  234   |  456    |  123   |   (1)  789    |  123   |   (1) フィールドBのデータが、フィールドAのデータの中に存在している時は、フィールドCに(1)と表示させる。 ・・・という処理をしたいのですが、どんな方法でやったらいいのでしょうか?レコード数は50万程あります。 よろしくお願いします。

専門家に質問してみよう