- ベストアンサー
ACCESSでデータゼロ件の時レポートが#エラーに
ACCESSのレポートでCOUNT(*)やSUM([品名])のテキストがデータ件数ゼロの時に#エラーになります。NZ関数を使っても同様です。どうすれば良いのでしょうか。よろしくお願いします。 ACCESS 2002
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
私は、データベースに格納する際にヌル値を0に置換しています。 そこで、こういうケースは初めてです。 ですから、最適回答の自信はありません。 ・質問者は、レポートフッターに 合計=Sum([数量]) とされていると思います。 <修正点> ・レポートの各行に、仮合計=Sum([数量]) を非表示にて配置します。 .フッターを合計=Sum([仮合計])とすれば、エラーは回避されます。 *複数ページにてのテストをしていません。 *単一ページのテストは終了しています。 *Count関数も同様の手法でOKです。 <私なら> ******************************************************** *ヌル値を0に置換してよいのであれば、UPDATE文を発行し、 *レポートで0をブランクで表示するようにします。 ********************************************************
その他の回答 (5)
s_husky です。 本来のレポートとは別にダミーの[エラー告知専用レポート]を用意したんですよね!その場合、印刷出来ないということは、全てのレポートが印刷できないに通じると思います。 こんな場合は、Access の再インストールも必要かも知れませんね。 到底にバグとは思えませんが...
補足
それが不思議なのです。 本来のレポートをマクロで実行すると 印刷プレビューモードだと[エラー告知専用レポート]はきちんと印刷されます。 印刷モードだと本来のレポートのアクションの実行エラーとなるのです。 レポートをダブルクリックで実行させると、印刷モードでも[エラー告知専用レポート]はきちんと印刷されます。 全てのレポートが印刷できないと言うことはないのですが・・・。 他の方法を考えてみることにします。長い間お付き合いいただいてありがとうございました。
s_husky です。 補足です。 私は、メッセージを表示しています。 Private Sub Report_NoData(Cancel As Integer) Cancel = True MsgBox "印刷すべきデータはありません。" End Sub
補足
ご回答ありがとうございます。 早速やってみました。確かに表示はOKでした。しかし、印刷はやはり出来ません。遠隔操作の自動起動なのでパソコンの前には誰もいないのです。印刷結果しか利用者は見ることが出来ないので印刷がしたいのですが・・・。これはaccessのソフト自体のバグではないかな?と思い始めているところです。
s_husky です。 ダミーの空レポートを指定してテストしましたが問題なく表示されました。
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です。 しかし同じレポートを開くをマクロで実行するとエラーになるのです。 どうしてでしょうか? 表題内容から離れてしまっていますね。すみません。もし、ご存知なら教えてください。
- mshr1962
- ベストアンサー率39% (7417/18945)
レポートをデザインモードで開いて、 レポートのプロパティのイベント「空データ時」を設定 "該当するデータがありません。"というメッセージを表示するか 印刷するようにすればいいのでは? 「魔法使いの開発工房」ここに空データ時や逆に空行の印刷する設定の例があります。 http://www.mahoutsukaino.com/index.htm
お礼
早々にお返事ありがとうございます。「魔法使いの開発工房」は今後勉強になりそうです。今回初めての利用ですので、お礼の方法もよく分からないのですが・・・。また、ご指導お願いします。
補足
すみません。「魔法使いの開発工房」ここに空データ時や逆に空行の印刷する設定の例を探すことができませんでした。 「空データ時」にデータ0件用の別のレポートを開く(”データが0件です”という印刷)、イベントのキャンルというマクロを実行しました。すると、このレポートを実行するとうまくいくのです(0件のときは0件用のレポートが印刷され、それ以外はデータが印刷)が、マクロでこの”レポートを開く”を実行すると”データが読み取り専用になっている・・・”というエラーメッセージになります。
補足
回答ありがとうございます。 ホスト計算機→CSV形式→アクセスで読み込み印刷→終了を自動で行っています。 抽出条件によってはデータがゼロ件の場合もあり、テーブルは毎回削除しています。 取り込んだCSVにデータがない場合は、0件です。その場合、ヌル値も入っていないようです。 仮合計=Sum([数量]) というのはレポートのテキストボックスのコントロールソースに書くのでしょうか。 すると、クエリ式 の誤りになるのですが・・・。 よろしくお願いします。