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

お知恵を拝借いたしたく、質問させていただきます。

Accessで伝票作成システムを運用しておりますが、レポートを出力した時に
レコードソースにあるはずのデータが表示されないことが100回に1度程度あります。
その場合に、デバックモードでブレークポイントをつけて再現するとすべてのデータが
表示されます。

前提
1.OS:Windows7
2.バージョン:Access2010 (2003互換モード)
3.データベースとプログラムでAccessのファイルを分離しています。
  両ファイルはネットワークドライブ上に保存してあり、ネットワークドライブ上で
  実行しています。
4.クライアントPCとネットワークドライブはADSLで接続しています。
5.レポートはDoCmd.OpenReportで出力しています。
  レポートのレコードソースはフォーム上のテキストボックスに表示されている
  文字列を抽出条件にしたクエリにしています。

調べたところによると、DoCmd句は非同期処理ということでデータの作成が完了しなくとも
次の命令を実行する、ということは分かったのですが
今回の前提条件においてもデータを受け取れなかったから、レポートに表示できなかったという
判断をしてよいのでしょうか?

分かりにくい表現で恐縮ですがよろしくお願いいたします。

A 回答 (1件)

かなり希望的観測ですが、プリンタの設定を変えて


http://support.microsoft.com/default.aspx?scid=k …
より
「全ページ分のデータをスプールしてから 印刷データをプリンタに送る」が ON だった場合 印刷する文書の最終ページのスプールが終了するまで印刷は実行されません。この設定が ON になっている場合 ドキュメント全体を確実に印刷装置に送信する事ができます。」
かもしれない。

もう一つ別案
ローカルPCに一時テーブルを作成して
currentDb.execute 削除クエリ
currentDb.execute 追加クエリ
Docmd.openreport ソースは一時テーブル
で解決するかも。
さらにしつこくTransaction 処理を加えるとか
RecordsAffected の数と一時テーブルのレコード数のチェックを加える
とかすれば、おそらく大丈夫かと思います。
    • good
    • 0

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

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


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