人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ID,固定,変動費1,変動費2
01,100,200,300
01,100,300,400
02,100,400,500
02,100,500,600
02,100,500,600
....

上記のようなデータがテーブルに入っているとします。IDは複数件あります。ID毎に固定、変動費1合計、変動費2合計を出力したいです。例えば、ID:01は固定100なので、これはこのまま出力します。01の変動費1の合計は500なので500を出力、変動費2の合計は700なので700を出力したいです。つまり固定費は合計しません。

これを実現するにはどのようにコードを書けばいいでしょうか?sum関数を使うのが便利なのでしょうか?ちなみにVBAとAccessでコードを書こうとしています。Kotei=固定、Hendo1=変動費1、Hendo2=変動費2と変数に入れて、ループ時に固定は足し込みをせずに、変動費1,2をHendo1=変動費1+Hendo1にしてデータを足していけば実現できるとは思うのですが、他に何か上手なやり方があればお教えください。

●質問者: akaired
●カテゴリ:コンピュータ
✍キーワード:access VBA コード データ ループ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● Mook
●23ポイント

データベースにあるならわざわざ VBS で集計しなくとも、SQL でできるケースだと思います。


下記で希望のようにならないでしょうか。

SELECT id, kotei, SUM( hendohi1 ), SUM( hendohi2 ) FROM data_table GROUP BY id, kotei

2 ● MotherGoose
●23ポイント

SQLで取得できると思いますがいかがでしょうか?

(「ID」と「固定」は1:1であることを前提で考えています。)

SELECT

ID,

固定,

SUM(変動費1) AS 変動費1合計,

SUM(変動費2) AS 変動費2合計

FROM テーブル1

GROUP BY ID, 固定


3 ● ふるるP
●22ポイント

VBAとACCESSということはACCESSのVBAで処理をする、ということでしょうか。

SQLをAccessで実行させるなら、CurrentProject.Connectionを使いましょう。

Dim SQL As String

SQL = " Select ID,固定,Sum(変動費1) AS 変動費1合計,Sum(変動費2) AS 変動費2合計"

Dim oRS As Recordset

Set oRS = CurrentProject.Connection.Execute(SQL)

Do until oRS.EOF

Debug.Print oRS.Fields(ID) & " :" & oRS.Fields("変動費1合計") & "," & oRS.Fields("変動費2合計")

oRS.MoveNext

Loop

Set oRS = Nothing


4 ● ken3memo
●22ポイント

Accessクエリーの作成画面で

表示・集計を選択する。

次に グループ化の場所で、

先頭や合計などを選択する。。。

で、

クエリーができたら、それを元にしてレポートや確認用のフォームを作るとか?


f:id:ken3memo:20090629004541j:image

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ