プロが教えるわが家の防犯対策術!

ACCESSのレポートでCOUNT(*)やSUM([品名])のテキストがデータ件数ゼロの時に#エラーになります。NZ関数を使っても同様です。どうすれば良いのでしょうか。よろしくお願いします。
ACCESS 2002

A 回答 (6件)

私は、データベースに格納する際にヌル値を0に置換しています。


そこで、こういうケースは初めてです。
ですから、最適回答の自信はありません。

・質問者は、レポートフッターに

合計=Sum([数量])

とされていると思います。

<修正点>

・レポートの各行に、仮合計=Sum([数量]) を非表示にて配置します。
.フッターを合計=Sum([仮合計])とすれば、エラーは回避されます。

*複数ページにてのテストをしていません。
*単一ページのテストは終了しています。
*Count関数も同様の手法でOKです。

<私なら>

********************************************************
*ヌル値を0に置換してよいのであれば、UPDATE文を発行し、
*レポートで0をブランクで表示するようにします。
********************************************************

この回答への補足

回答ありがとうございます。
ホスト計算機→CSV形式→アクセスで読み込み印刷→終了を自動で行っています。
抽出条件によってはデータがゼロ件の場合もあり、テーブルは毎回削除しています。
取り込んだCSVにデータがない場合は、0件です。その場合、ヌル値も入っていないようです。
仮合計=Sum([数量]) というのはレポートのテキストボックスのコントロールソースに書くのでしょうか。
すると、クエリ式 の誤りになるのですが・・・。
よろしくお願いします。

補足日時:2006/01/27 11:41
    • good
    • 0

s_husky です。



本来のレポートとは別にダミーの[エラー告知専用レポート]を用意したんですよね!その場合、印刷出来ないということは、全てのレポートが印刷できないに通じると思います。
こんな場合は、Access の再インストールも必要かも知れませんね。
到底にバグとは思えませんが...

この回答への補足

それが不思議なのです。
本来のレポートをマクロで実行すると
印刷プレビューモードだと[エラー告知専用レポート]はきちんと印刷されます。
印刷モードだと本来のレポートのアクションの実行エラーとなるのです。
レポートをダブルクリックで実行させると、印刷モードでも[エラー告知専用レポート]はきちんと印刷されます。
全てのレポートが印刷できないと言うことはないのですが・・・。
他の方法を考えてみることにします。長い間お付き合いいただいてありがとうございました。

補足日時:2006/02/01 13:42
    • good
    • 0

s_husky です。



補足です。
私は、メッセージを表示しています。

Private Sub Report_NoData(Cancel As Integer)
  Cancel = True
  MsgBox "印刷すべきデータはありません。"
End Sub

この回答への補足

ご回答ありがとうございます。
早速やってみました。確かに表示はOKでした。しかし、印刷はやはり出来ません。遠隔操作の自動起動なのでパソコンの前には誰もいないのです。印刷結果しか利用者は見ることが出来ないので印刷がしたいのですが・・・。これはaccessのソフト自体のバグではないかな?と思い始めているところです。

補足日時:2006/02/01 09:27
    • good
    • 0

s_husky です。



ダミーの空レポートを指定してテストしましたが問題なく表示されました。
    • good
    • 0

s_husky です。



NoData対策とヌル値対策とは別個に分けて考えるべきかと。

Private Sub Report_NoData(Cancel As Integer)
Cancel = True
End Sub

クエリ式 の誤りになるのですが・・・

については、判りません。

この回答への補足

ありがとうございます。#エラーは回避できました。
しかし空データの時にも、何か印刷したいのです。、(明細用の)印刷をキャンセルして”データがありません”の印刷をしたいのですが・・・エラーになります。

Private Sub Report_NoData(Cancel As Integer)
Cancel = True
DoCmd.OpenReport "Rデータなし", acViewNormal, "", "", acNormal
End Sub

ちなみに、このレポートをダブルクリックで実行するとOKです。
しかし同じレポートを開くをマクロで実行するとエラーになるのです。
どうしてでしょうか?
表題内容から離れてしまっていますね。すみません。もし、ご存知なら教えてください。

補足日時:2006/01/31 15:38
    • good
    • 0

レポートをデザインモードで開いて、


レポートのプロパティのイベント「空データ時」を設定
"該当するデータがありません。"というメッセージを表示するか
印刷するようにすればいいのでは?

「魔法使いの開発工房」ここに空データ時や逆に空行の印刷する設定の例があります。
http://www.mahoutsukaino.com/index.htm

この回答への補足

すみません。「魔法使いの開発工房」ここに空データ時や逆に空行の印刷する設定の例を探すことができませんでした。
「空データ時」にデータ0件用の別のレポートを開く(”データが0件です”という印刷)、イベントのキャンルというマクロを実行しました。すると、このレポートを実行するとうまくいくのです(0件のときは0件用のレポートが印刷され、それ以外はデータが印刷)が、マクロでこの”レポートを開く”を実行すると”データが読み取り専用になっている・・・”というエラーメッセージになります。

補足日時:2006/01/26 20:11
    • good
    • 0
この回答へのお礼

早々にお返事ありがとうございます。「魔法使いの開発工房」は今後勉強になりそうです。今回初めての利用ですので、お礼の方法もよく分からないのですが・・・。また、ご指導お願いします。

お礼日時:2006/01/26 20:42

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

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


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