- ベストアンサー
アクセスの計算式について
アクセスの計算式について アクセスで原価管理表を作成しています。 1顧客情報、2販売額、3原価 4人件費、5経費のクエリをつくり、 1をもとにレポートを作成し、2,3,4、5のサブフォームを組み込みました。 注文番号でリンクさせています。 最後に、総原価(3+4+5)、利益(2-3-4-5)を出したいのですが、4や5のデータがない場合は、 合計が#size!というエラーになってしまいます。 Nz関数も試したのですが、うまくいきません。 どうすればよいのでしょうか? よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
colo2011さんのシステムをそのまま踏襲するか、 あるいは、レポートに最終的に表示したい データを遡って、必要なデータの取得の方法を 変更し、レポートの構造を変更するか考え 込みました。。 まずは、 (1) システムそのまま サブフォームのコントロールに表示してある データをメインレポートの表示用データとして 取り込むには、一旦サブレポートのレポート フッターに取り込んで、そこからメインレポートの フォーマット時にメインレポートに表示する イベントを設定するのがセオリーです。 >残念ながら、フォームフッタで合計させて参照 >する方法は今回の場合使えません. これはやはり、どう考えても矛盾しているようなのですが、 レポートフッターを使っての方法は試してはいないのですか。 Private Sub レポートフッター_Format(Cancel As Integer, FormatCount As Integer) Me!合計 = Nz(Reports!メインレポート!サブレポート1!販売額) - Nz(Reports!メインレポート!サブレポート2!原価合計) End Sub のようにすることは試していないのですか。 合計は、メインレポートにもレポートフッターを 設定し、そこに非連結のテキストボックスを 合計という名前で設定しています。 もし、この方法はどうしても不可能という 結論ならば、最初からデータの取得方法と、 レポートのレコードソース、レポートの 形態を一から設定しなおす必要があります。
その他の回答 (3)
- nicotinism
- ベストアンサー率70% (1019/1452)
単なる思い付きですが レポートに『空データ時』イベントがありますので その際には、Public 変数に格納 で =Nz([Report]![solo costo]![テキスト13],0)+Nz([Report]![q02 gasto集計]![テキスト11],0)+Nz([Report]![人件費]![テキスト13],0) の一部を差し替えるコードをメインレポートのフォーマット時イベントに加えて・・ 的なことが出来るかもしれません。 タイミングが微妙(サブレポートの結果をメインレポートがチャンと待ってくれるか) Public 変数を信頼してよいものか。 など不明です。 ご参考までに。
お礼
ありがとうございます。 参考になりました。
- piroin654
- ベストアンサー率75% (692/917)
文章の確認: (1) >1顧客情報、2販売額、3原価 4人件費、5経費のクエリをつくり、 これは、5つのクエリを作ったということですか。 (2) >1をもとにレポートを作成し、2,3,4、5のサブフォームを >組み込みました。 これは、レポートとフォームが混在していますが、 レポートですか、あるいはフォームですか。 また、2,3,4,5のサブフォームとはそれぞれ別個に サブフォーム(あるいはサブレポート)を作ったの ですか。あるいは2,3,4,5を表示するクエリで サブフォーム(あるいはサブレポート)を作った ということですか。 もし、別個にサブフォームを作ったのならば その理由は何ですか。 (3) >最後に、総原価(3+4+5)、利益(2-3-4-5)を出したいのですが、 >4や5のデータがない場合は、合計が#size!というエラーに >なってしまいます。 エラーが#SIZE!というのは間違いないですか。 #ERROR あるいは #DELETEといったものでは ないのですね。#SIZE!というエラー表示は 初めて聞きましたが。 このエラーはどこに表示されたのですか。 その際に、エラーメッセージとエラー番号は 表示されなかったのですか。 合計とは1,2,3,4,5をどのように組み合わせてものですか。 (4) >Nz関数も試したのですが、うまくいきません。 Nz関数はどのような使い方をしたのですか。 (5) >データシートにサブデータシートを持たした場合、 >1度でも表示しない限り、Sum計算はしないので、 >残念ながら、フォームフッタで合計させて参照 >する方法は今回の場合使えません. サブデータシートをフォームの表示に使用した 理由は。 サブデータシートからのデータを計算式に入れて いるのですか。 (6) 2販売額、3原価 4人件費、5経費 のデータ型は数値型、テキスト型、通貨型 のどれですか。 以上です。
補足
(1) >1顧客情報、2販売額、3原価 4人件費、5経費のクエリをつくり、 これは、5つのクエリを作ったということですか。 言葉が足りませんでした。 5つのクエリを作り1、2,3,4,5のレポートをそれぞれ作成しました。 (2) >1をもとにレポートを作成し、2,3,4、5のサブフォームを >組み込みました。 1のレポートをもとに2,3,4,5をサブレポートとして組み込みました。 (3) エラーが#SIZE!というのは間違いないですか。 #ERROR あるいは #DELETEといったものでは ないのですね。#SIZE!というエラー表示は 初めて聞きましたが。 このエラーはどこに表示されたのですか。 その際に、エラーメッセージとエラー番号は 表示されなかったのですか。 合計とは1,2,3,4,5をどのように組み合わせてものですか。 数式自体は問題なく、それぞれ(3,4,5)に数字が表示されているときは合計が表示されます。 例えば4の数値がなく、サブレポート自体が1のレポートに表示されない場合、合計のテキストボックスに#Size!と表示されます。(つまり計算結果の表示が#Size!です) また、原価合計が#Size!と表示されているときに、販売額-原価合計 の結果は#Type!と表示されます。 (4) Nz関数はどのような使い方をしたのですか。 =Nz([Report]![solo costo]![テキスト13],0)+Nz([Report]![q02 gasto集計]![テキスト11],0)+Nz([Report]![人件費]![テキスト13],0) ちなみに 3 原価 [Report]![solo costo]![テキスト13] 4 人件費 [Report]![人件費]![テキスト13] 5 経費 [Report]![q02 gasto集計]![テキスト11] です。各数値が存在する場合は問題なく合計が算出されます。 (5)サブデータシートをフォームの表示に使用した 理由は。 サブデータシートからのデータを計算式に入れて いるのですか。 サブデータシートをサブレポート、データシートをレポートと解釈し、 レポートにサブレポートを持たした場合、 1度でも表示しない限り、Sum計算はしないと解釈しました。 サブレポートの数字の合計をレポートに記載しているのですが、 サブレポートに該当する数字がない ↓ そのサブレポートはレポート上に表示されない。 ↓ Sum計算はしない と解釈しました。 (6) 2販売額、3原価 4人件費、5経費 のデータ型は数値型、テキスト型、通貨型 のどれですか。 すべて通貨型です よろしくおねがいします。
- layy
- ベストアンサー率23% (292/1222)
ACCESS CLUB というサイト、 『No25434「#エラー」が表示されます』 というのを確認してみて下さい。 違うなら、キーワードで類似を探す。 エラー表示はクエリかフォームかレポートか。 クエリはよくてレポートがダメとか?。
補足
データシートにサブデータシートを持たした場合、1度でも表示しない限り、Sum計算はしないので、 残念ながら、フォームフッタで合計させて参照する方法は今回の場合使えません. というのが私の場合にあてはまるようです。 ありがとうございました。
お礼
試してみたのですが、無理のようです。 データに仮データとして0を入力しようと思います。 ありがとうございました。