ここから質問投稿すると、最大10000ポイント当たる!!!! >>

毎回おせわになっております。

現在、Access2000で帳票の出力をおこなっているのですが、部局ごとに小計を出力し、その合計をレポートのフッターに出力したいのですが、どうしても合計がうまくいきません。

部局ごとのグループフッターセクションで以下のようにPGを書いております。

Private Sub グループフッター1_Format(Cancel As Integer, FormatCount As Integer)

'データの表示
Me!部局別小計 = Bukyoku_t

'総計に追加
Total = Total + Bukyoku_t

End Sub

ここで、Bukyoku_tは詳細のFormatにてひとつの部局での各々の金額を足したものです。

実際にモジュール内で動きを確認したところ、最初の部局以外はグループセクションを2回実行しているとこがわかりました。たしかに、総計の金額も部局別小計をすべて足した値の約2倍が出力されました。

レポートのプロパティの設定がいけないのでしょうか?
ご教授のほど、よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

プログラムではなくテキストボックスのコントロールソースに設定すれば集計されると思います。


グループフッターに部局別小計、レポートフッターに総計が存在すると仮定して回答させていただきます。
条件が違っていたらごめんなさい。

部局別小計
コントロールソース:=Sum([小計したい項目])

総計
コントロールソース:=Sum([小計したい項目])
(注意)部局別小計と同じ内容を設定してください
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
bubebubeさんと同じ方法で行った結果無事に小計を出力することができました。

お礼日時:2003/05/16 10:56

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

QAccessの桁区切りについて教えてください。

アクセスのレポートの金額に、桁区切りのカンマを付けたいと思っています。
プロパティの書式を通貨にすると¥マークがついてしまいます。
合計は付いてもいいのですが、内訳には¥マークを付かないように桁区切りだけにしたいのです。

そのため、書式に『###,##0』としました。
できましたが、小数点以下が表示されません。

小数点を表示したいので『###,##0.###』としたら、『59,180.000』となってしまいます。
小数点の指定を自動から3桁表示に変えましたが、うまくいきません。

教えていただきたい内容としては、
・金額の表示に桁区切りのカンマを付けたい。
・でも¥マークは付けたくない。
・小数点以下該当があるもののみ3桁まで表示させたいが(5,500.365)、
 小数点以下がないものは小数点以下は表示させたくない(5,400)。

ぜひともアクセスを使いこなしている方、お教えください。

Aベストアンサー

この内容からですと、[金額]フィールドを「レコードの内容により、書式を変えたい」と
いうことですので、テキストで処理する方法よりないかと思います。(Access2000)

VBAによる「ユーザー定義関数」を使う方法ですが、それで良かったら手順を
詳しく書きますので、テストしてみてください。

・テーブルのデザインで[金額]フィールドを「数値型」の「単精度浮動小数点型」か
 「倍精度浮動小数点型」にします。

・「モジュール」の新規作成で開いたコードウィンドウに下記コードをコピーして
 貼り付けます。

・フォームのレコードソースにするためのクエリを作成します。
 必要なフィールドをQBEグリッド(画面の下側)にドラッグした後、
 新規フィールドに 例えば、 金額Txt:Valtxt([金額]) と入力します。

・レポートの[金額]のコントロールソースに、この[金額T]を指定します。
 この書式で「配置」を右に設定します。

これで、少数部がない数値は、整数部だけを表示し、位取りの , が付きます。
小数部がある場合は、4位を四捨五入します。(通常と同じ)
その結果、右側に 0 が付いた場合は、表示しません。

ご承知の上とは思いますが、表形式の場合、少数点位置が揃わなくなりますので
見ずらくなってしまいます。

このようなもので如何でしょうか。

Function Valtxt(V As Double) As String
Dim T As String
Dim N As Integer
T = Format(V, "#,##0.000")
For N = Len(T) To InStr(T, ".") Step -1
  If Mid(T, N, 1) = "0" Then
    T = Left(T, N - 1)
  Else
    Exit For
  End If
Next N
If Right(T, 1) = "." Then T = Left(T, Len(T) - 1)
Valtxt = T
End Function

この内容からですと、[金額]フィールドを「レコードの内容により、書式を変えたい」と
いうことですので、テキストで処理する方法よりないかと思います。(Access2000)

VBAによる「ユーザー定義関数」を使う方法ですが、それで良かったら手順を
詳しく書きますので、テストしてみてください。

・テーブルのデザインで[金額]フィールドを「数値型」の「単精度浮動小数点型」か
 「倍精度浮動小数点型」にします。

・「モジュール」の新規作成で開いたコードウィンドウに下記コードをコピーして
 ...続きを読む

Q複数のクエリーを一枚のレポートに掲載する方法(アクセス)

約100名の顧客がいて各人がある曜日(月~土)に来るとします。中には週に1回しか来ない人もいれば、毎日来る人もいます。顧客リストテーブルに月~土のフィールドを作り、それを元に月曜日来客リスト、火曜日来客リスト・・・というクエリーを作成したのですが、これを月~土曜日の一覧リストとして表示させたいのですが、どのようにしたらよいでしょうか?
A:月、水、木、土
B:月、火、木
C:水のみ
D:月、木
E:月、水
F:金のみ
G:火、土 の場合

月曜日  火曜日  水曜日  木曜日  金曜日  土曜日
 A     B     A     A     F     A
 B     G     C     B           G
 D           E     D
 E 
  
という表を完成させていのですが・・・

よろしくお願いします。

Aベストアンサー

掲題を参考に...

月曜日のレポート表示イメージ
'-----
月曜日
 A
 B
 D
 E
'-----

火曜日のレポート表示イメージ
'-----
月曜日
 B
 G
'-----



土曜日のレポート表示イメージ
'-----
土曜日
 A
 G
'-----

って、ここまでは大丈夫ですね(^-^ )
さて、次はサブレポートですが、とりわけ難しく考えることはないです
レポートの中にレポートを貼り付けるというイメージです

で、先程作成した6個のレポートをkenchan2001さんがイメージしたとおりに新規レポートに配置していきます
(ウィザードはありません、自力で頑張りましょう)
レポートのデザインビュー時にツールボックスの「サブフォーム/サブレポート」ボタンを使用して配置して下さい
(ウィザード等、便利な機能もついています)
あとは、手直しすれば完成します

このレポートの難点は、ある曜日に顧客がかたまりすぎたら、レポートをはみ出してしまうことですね
なんとか、デザイン設計の方で回避できますが...
頑張って下さい(^-^ )

掲題を参考に...

月曜日のレポート表示イメージ
'-----
月曜日
 A
 B
 D
 E
'-----

火曜日のレポート表示イメージ
'-----
月曜日
 B
 G
'-----



土曜日のレポート表示イメージ
'-----
土曜日
 A
 G
'-----

って、ここまでは大丈夫ですね(^-^ )
さて、次はサブレポートですが、とりわけ難しく考えることはないです
レポートの中にレポートを貼り付けるというイメージです

で、先程作成した6個のレポートをkenchan2001さんがイメージしたとおりに新規...続きを読む

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入力画面
       ↓
レコード番号を入れると、そのレコードのデーターが画面に表示され、
その画面で修正可能
       ↓
 保存 ボタンで保存

という流れです。

レコードナンバーはIDを使おうと思っています。

データの量が莫大な為、コンポボックスなどは使えません。

できるだけ、VBAなどは使わずに作りたいです。

よろしくお願い致します。

フォームを使って、テーブルを参照、データ入力、データ更新をしたいのです。

売上テーブル

 ID   商品コード  日付    金額 
 1    G1     20080101  532153
 2    G1     20080101  564281
 3    G1     20080301  538123
 4    J4     20080301  124531
 5    J4     20080302  125483

ID:オートナンバー 商品コード:数値型 日付:数値型 金額:数値型

これを使い、
フォームではまず

レコードナンバーを入...続きを読む

Aベストアンサー

まずそのテーブルを基にしてフォームを作成します。
そのフォームのヘッダー部分にテキストボックスを配置後、一旦
上書き保存。
フォームのレコードソースを
SELECT *
FROM テーブル名 WHERE ID=[Forms]![フォーム名]![テキストボックス名]
とします。
次にテキストボックスの更新後処理に
Me.Requery
とすれば完成です。
フォームを開いてテキストボックスにID入力後エンターしてください。

保存に関しては、コマンドボタン作成後クリック時イベントに
DoCmd.RunCommand acCmdSaveRecord
とすれば良いでしょう。

この手のモノは検索すれば相当数ヒットするので、そちらを参考にされるのもよろしいかと。

QACCESSレポート グループフッターの計算結果をレポートフッターで使う

いつもお世話になっております。
「部署」「商品」「金額」の3フィールドからなるテーブルを元に、下記のようなレポートで消費税を計算させようとしています。(実際はもっと項目は多いです。)

=============『詳細』
部署_商品_金額
=============『部署グループフッター』
="部署計"__部署合計 ←=Sum([金額])
="消費税"__部署消費税 ←=[部署合計]*0.05
="請求額"__部署請求額 ←=[部署合計]+[部署消費税]
=============『レポートフッター』
="全体計"__全体合計 ←=Sum([金額])
="消費税"__全体消費税 ←=Sum([部署消費税])
="請求額"__全体請求額 ←=Sum([部署請求額])

レポートフッターの
=Sum([部署消費税])
=Sum([部署請求額])
この2箇所がエラーになってしまいます。ヘルプを見るとそういうSumの使い方は出来ないようなことが書かれていました。

やりたいことは分かっていただけたでしょうか。
要するに部署ごとに消費税を出し、全体では各部署の消費税を加算したいのです。
今は仕方がないので部署ごとの消費税を出した別テーブルを用意しておいて、部署をキーにDsumで求めていますが、このやり方は気に入りません。
レポートの中だけでうまいやり方はないでしょうか。

ACCESS2000です。
よろしくお願いします。

いつもお世話になっております。
「部署」「商品」「金額」の3フィールドからなるテーブルを元に、下記のようなレポートで消費税を計算させようとしています。(実際はもっと項目は多いです。)

=============『詳細』
部署_商品_金額
=============『部署グループフッター』
="部署計"__部署合計 ←=Sum([金額])
="消費税"__部署消費税 ←=[部署合計]*0.05
="請求額"__部署請求額 ←=[部署合計]+[部署消費税]
=============『レポートフッター』
="...続きを読む

Aベストアンサー

> 誤差が出るのでダメなんですよ・・・
すべて切り捨て計算すればいいかと。

詳細セクション
=Int([金額]*0.05)

グループフッターセクション
=Sum(Int([金額]*0.05))

レポートフッターセクション
#グループフッターセクションと同じ。


もしくは、コントロール(テキストボックス)の集計機能を使うとかでも
できそうですね。

テキストボックスを、詳細セクションに配置して、
 可視プロパティ:いいえ
 コントロールソース:=Int([金額]*0.05)
 集計実行:グループ全体
     (全体)

上記のコントロールを、グループフッター等から参照するようにしても
求めることができると思います。

Qアクセスのレポートのヘッダーを2ページ以降にもつけるには?

アクセスでスタッフの交通費の集計をしレポートに出力しています。1ページ目に所属部署、行き先などヘッダーがあります。2ページ目にも同様のヘッダーを入れたいのですが、どうすればいいのでしょうか?初歩的な質問ですいませんが、困っています。

Aベストアンサー

レポートヘッダーにヘッダーを設定しているとレポートの最初だけ表示されます。
所属部署・行き先等のヘッダーをページヘッダーに移動してレポートヘッダの高さを0にしてください。(レポートヘッダー部に表示するラベル等があればそれに合わせて高さを設定してください。)
そうすれば各ページにヘッダーが表示されます。
ページヘッダーにある各ヘッダーを移動後レポートヘッダー・フッターに何も表示するものがなければレポートヘッダー・フッターを削除してもかまいません。

Qクエリで合計を出したい。。

こんにちは。
初歩的な質問で申し訳ありませんが、回答お願いします。
アクセスで売上をつけています。
地区ごとのクエリで合計を出したいのですが

社名  地区  売上
A社 ○○地区 1000
B社 ○○地区 2000 
C社 ○○地区 3000
D社 ○○地区 4000
E社 ○○地区 5000

という感じなんですが
どこかのセル(アクセスでもセルと呼ぶのでしょうか^_^;?)に売上の合計(ここでは15000です)が出るようにしたいのですが・・・。

Aベストアンサー

地区ごとの合計を出したいのなら、
クエリを作成し、該当するテーブルを選び
「地区」、「売り上げ」を選択して
右クリックして「集計」をクリックし
「地区」の集計を「グループ化」
「売り上げ」の集計を「合計」にする。

SQLビューで見ると

SELECT 地区名, Sum(売り上げ) AS 合計 FROM テーブル名 GROUP BY 地区名;

といった感じかな。

QアクセスVBAのMe!と[ ]

基本的なことですみません。

アクセスのイベントプロシージャで、Me!ってありますけど、これはどういう意味なんでしょうか?

また、Me!の後に、Me!.~~と書く場合と、Me!.[~~]と書く場合がありますが、どこが違うのでしょうか?

Aベストアンサー

>プロシージャ内で[]を使う場合は、そのフォーム外のオブジェクトを使う場合と考えてよろしいでしょうか?
別のオブジェクトを使う場合だけではありません。
Hensu = Me![Text1]のようにHensuという変数に自身のTest1の値を代入する場合のように。
[]で括られているのがオブジェクト名やコントロール名だよという事。
クエリの抽出条件に存在しない[?]とすれば?というコントロール等が参照できないので?というダイアログが表示されるように?というオブジェクトやコントロールは何?と聞いてくるように。
>フォーム内のオブジェクトの場合はあくまでMe!で良いのでしょうか
Forms.[フォーム名]![コントロール名]やForms![フォーム名]![コントロール名]が構文。
アクティブなフォームが自分自身ならForms![フォーム名]の変わりにMeでもOKですという事。

と言う解釈の方が良いと思います。

QACCESS クエリで、グループ化したものをカウントしたい

SQLでなくクエリで、グループ化したものをカウントしたいのですが、クエリを2個作ればよいのはわかるのですが、これを1つのクエリで作るのは可能でしょうか?

現状:
クエリ1 グループ化
クエリ2 クエリ1の結果をカウント

あまりにクエリを作り過ぎる為、今後の向上の為にと思い、質問します。
よろしくお願いします。

Aベストアンサー

>>Sum(1/DCount("*","テーブル名","グループ='" & [グループ] & "'"))
>が理解できませんでした。(再現もできませんでした)
質問にテーブルの情報がなかったのでこのように書きました

グループとは質問の1段目のクエリでグループに指定したフィールドの名前です

グループAが3レコード、Bが2レコードあれば

1/3+1/3+1/3+1/2+1/2=2

という結果が得られます

QAccessのレポート機能でソート&抽出条件を指定したい

accessでレポート機能について、質問です。
エクセルでいうフィルタ機能みたいなものはあるのでしょうか。

例えば、以下の場合、職位="B"だけレポートで表示したい場合、
どうすればよいのでしょう?
CD 職位 所属
01  A  東京
02  B  東京 → このデータだけを表示
03  A  大阪

1)クエリを作って、レポートで表示するしかないのでしょうか?
2)レポートのデザインで条件指定ができるのでしょうか?

ソートの条件も変えたいのですが、どの項目をソートするかは、
どこで指定できるのでしょうか?

要はレポートの形式は1つで、様々な抽出条件とソート条件で
レポート表示したいのです。

Aベストアンサー

>1)クエリを作って、レポートで表示するしかないのでしょうか?
>2)レポートのデザインで条件指定ができるのでしょうか?
レポートのデザインで、レポートのフィルタプロパティで、職位="B"として、フィルタ適用を"はい"にすると言う方法もあります。

>ソートの条件も変えたいのですが、どの項目をソートするかは、
>どこで指定できるのでしょうか?
レポートのデザインの「並べ替え/グループ化の設定」で行います。

>要はレポートの形式は1つで、様々な抽出条件とソート条件で
>レポート表示したいのです。
1つレポートの雛形を作って、フィルタと並べ替えのプロパティと並べ替え/グループ化の設定を変えて保存し、複数のレポートを用意する。
入力した値によって変えたい場合は、フォーム上のテキストボックスの値や特定テーブルのレコードの値にを参照するクエリを作り、レポートのレコードソースにする。
またはVBAで処理する。

p.s.
レポートの表示をボタンで起動する場合、VBAやマクロを呼び出します。
VBAやマクロでレポートを開く時に、フィルタやWhere条件式を設定できます。

>1)クエリを作って、レポートで表示するしかないのでしょうか?
>2)レポートのデザインで条件指定ができるのでしょうか?
レポートのデザインで、レポートのフィルタプロパティで、職位="B"として、フィルタ適用を"はい"にすると言う方法もあります。

>ソートの条件も変えたいのですが、どの項目をソートするかは、
>どこで指定できるのでしょうか?
レポートのデザインの「並べ替え/グループ化の設定」で行います。

>要はレポートの形式は1つで、様々な抽出条件とソート条件で
>レポート表示した...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング