私はVB6 SP5で、検索したデータの印刷をAccessのレポートで行う
プログラムを設計しているのですが、
実行中にレポートのレコードソースを変更したというのに、レコードソースは
最初に設定した内容のままで、保存されていません。
後、この状態で2回目の印刷を行うと、「オートメーション エラーです。
起動されたオブジェクトは、クライアントから切断されました。」というエラーが
発生しました。プログラムは以下のとおりになります。
'カレントデータベースの設定
objAccess.OpenCurrentDatabase テーブル名, False
DoCmd.OpenReport "レポート名", acViewDesign
Set MyReport = Reports!レポート名
MyReport.RecordSource = テーブル名
'レポートの印刷
DoCmd.OpenReport レポート名
DoCmd.Close acReport, "レポート名", acSaveYes
カレントデータベースの解除
objAccess.CloseCurrentDatabase
一体、どこが悪いのか、教えてください。
>DoCmd
編集 削除>DoCmd
編集 削除すみません。 間違って送信してしまった。
>>DoCmd
objACCESS.DoCmd・・・
>>Reports!レポート名
objACCESS.Reports!レポート名
プロセスが残ってしまっているのかと思います。
私の環境ではエラーの表現は違いましたが、これで2回印刷できました。
お知らせ、ありがとうございます。けど、この環境では、
うまくいきませんでした。
私の環境はWin NT4.0ですが、OSが違う事によって、組み立てる
コードも違うのでしょうか?後、テーブル名では、変数を使って
いるのですが、エラーと関係がありますか?
下記ソースでテストしたところ問題なさそうなのですが、
これ動きますか?
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
こんにちは。早速試してみましたが、また「オートメーションエラーです。」
というエラーが返ってきました。もしかしたら、「参照設定」が影響している
かもしれません。今、設定しているのは、
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
です。
私はこうです。(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
ここですがコメントになっているでしょうか?
なっているとしたらこれ以上分かりませんね〜。
どなたかサポートお願いします。
追記
ダメ元で最後に下記を入れてみて下さい。
Set MyReport = Nothing
Set objACCESS = Nothing
どうも、こんにちは。くろすです。
あれからアッガイさんの参照設定で試してみましたが、
ちゃんと動かすことが出来ました。そうなると、私が
設定している参照設定で余計な動作が発生したのだと
思います。本当にありがとうございます。
あ、すみません。この問題は無事に解決したので、
チェックをいれておきますね。貴重なお時間、
ありがとうございます。