Accessのレポートのプロパティを変更した後、保存を行いたい。

解決


くろす  2004-02-26 12:51:38  No: 82292  IP: [192.*.*.*]

私はVB6  SP5で、検索したデータの印刷をAccessのレポートで行う
プログラムを設計しているのですが、
実行中にレポートのレコードソースを変更したというのに、レコードソースは
最初に設定した内容のままで、保存されていません。
後、この状態で2回目の印刷を行うと、「オートメーション エラーです。
起動されたオブジェクトは、クライアントから切断されました。」というエラーが
発生しました。プログラムは以下のとおりになります。

'カレントデータベースの設定
objAccess.OpenCurrentDatabase テーブル名, False
DoCmd.OpenReport "レポート名", acViewDesign
Set MyReport = Reports!レポート名
MyReport.RecordSource = テーブル名
'レポートの印刷
DoCmd.OpenReport レポート名
DoCmd.Close acReport, "レポート名", acSaveYes
カレントデータベースの解除
objAccess.CloseCurrentDatabase

一体、どこが悪いのか、教えてください。

編集 削除
アッガイ  2004-02-26 14:12:53  No: 82293  IP: [192.*.*.*]

>DoCmd

編集 削除
アッガイ  2004-02-26 14:12:54  No: 82294  IP: [192.*.*.*]

>DoCmd

編集 削除
アッガイ  2004-02-26 14:16:57  No: 82295  IP: [192.*.*.*]

すみません。  間違って送信してしまった。

>>DoCmd
    objACCESS.DoCmd・・・

>>Reports!レポート名
    objACCESS.Reports!レポート名

プロセスが残ってしまっているのかと思います。
私の環境ではエラーの表現は違いましたが、これで2回印刷できました。

編集 削除
くろす  2004-02-26 16:58:53  No: 82296  IP: [192.*.*.*]

お知らせ、ありがとうございます。けど、この環境では、
うまくいきませんでした。
私の環境はWin NT4.0ですが、OSが違う事によって、組み立てる
コードも違うのでしょうか?後、テーブル名では、変数を使って
いるのですが、エラーと関係がありますか?

編集 削除
アッガイ  2004-02-26 17:20:11  No: 82297  IP: [192.*.*.*]

下記ソースでテストしたところ問題なさそうなのですが、
これ動きますか?

Dim objACCESS As Object
Dim wk_TBL As String

Set objACCESS = CreateObject("Access.Application")
objACCESS.OpenCurrentDatabase App.Path & "\db1.mdb"


wk_TBL = "テーブル2"

''カレントデータベースの設定
''objACCESS.OpenCurrentDatabase wk_TBL, False

'デザインで開く
objACCESS.DoCmd.OpenReport "レポート1", acViewDesign

Set MyReport = objACCESS.Reports!レポート1

'レコードソースの変更
MyReport.RecordSource = wk_TBL

'レポートの印刷
'objACCESS.DoCmd.OpenReport レポート1

'レポート保存
objACCESS.DoCmd.Close acReport, "レポート1", acSaveYes

'カレントデータベースの解除
objACCESS.CloseCurrentDatabase

編集 削除
くろす  2004-02-26 18:24:44  No: 82298  IP: [192.*.*.*]

こんにちは。早速試してみましたが、また「オートメーションエラーです。」
というエラーが返ってきました。もしかしたら、「参照設定」が影響している
かもしれません。今、設定しているのは、

Visual Basic For Application
Visual Basic runtime objects and procedures
Visual Basic objects and procedures
OLE Atomation
Microsoft DAO3.6 Object Library
Microsoft Scripting Runtime
Microsoft Access9.0 Object Library

です。

編集 削除
アッガイ  2004-02-26 18:31:06  No: 82299  IP: [192.*.*.*]

私はこうです。(Access2000です)
Visual Basic For Application
Visual Basic runtime objects and procedures
Visual Basic objects and procedures
OLE Atomation
Microsoft Access9.0 Object Library

先ほどのソース余計なのまでのせてしまいました。
>''カレントデータベースの設定
>''objACCESS.OpenCurrentDatabase wk_TBL, False
ここですがコメントになっているでしょうか?

なっているとしたらこれ以上分かりませんね〜。
どなたかサポートお願いします。

編集 削除
アッガイ  2004-02-26 18:35:08  No: 82300  IP: [192.*.*.*]

追記

ダメ元で最後に下記を入れてみて下さい。

Set MyReport = Nothing
Set objACCESS = Nothing

編集 削除
くろす  2004-02-27 09:02:21  No: 82301  IP: [192.*.*.*]

どうも、こんにちは。くろすです。

あれからアッガイさんの参照設定で試してみましたが、
ちゃんと動かすことが出来ました。そうなると、私が
設定している参照設定で余計な動作が発生したのだと
思います。本当にありがとうございます。

編集 削除
くろす  2004-02-27 09:04:26  No: 82302  IP: [192.*.*.*]

あ、すみません。この問題は無事に解決したので、
チェックをいれておきますね。貴重なお時間、
ありがとうございます。

編集 削除