「一気に最後まで読んだ」本、教えて下さい!

Access2007 外部MDBコントロール

使用OS:xp
Access:2007

いつもお世話になっております。
Access2007のVBA(GetObject)を利用して、外部MDBをコントロールしたいと考えております。

「実現したい内容」

3つのMDBが存在します。
A.mdb
B.mdb
C.mdb

A.mdbにコードを書いて、B.mdbにC.mdb内のレポート「レイアウト」をインポートします。

*******************************************************************************************************
Dim ACC As Access.Application
Set ACC = GetObject("B.mdbのフルpath") '外部MDBへ接続

DoCmd.SetWarnings False
On Error Resume Next
ACC.DoCmd.DeleteObject acReport, "レイアウト" 'レポートの削除
On Error GoTo 0
ACC.DoCmd.TransferDatabase acImport, "Microsoft Access", "C.mdbのフルpath", acReport, "レイアウト", "レイアウト", False

ACC.CloseCurrentDatabase
Set ACC = Nothing
*******************************************************************************************************

実行するとレポート「レイアウト」はB.mdbに格納(インポート)されるのですが、
その際、C.mdbが一旦起動し、データベースウインドウが開いて閉じる動作が走ってしまします。(当然だと思いますが)

その動きを止める(裏でコードが走る状態)ことはできないでしょうか。
以前Access2000で同じコードを実行したときは画面の切り替えはなく、裏で実行されていました。

過去質問をうまく検索できずご質問させていただきます。

ご教授の程宜しくお願い申し上げます。

A 回答 (1件)

環境(当方 Win7 & Acc2010)が異なるので、ご参考までに。


Dim ACC As Access.Application
Set ACC = GetObject("B.mdbのフルpath") '外部MDBへ接続
の上2行を
Dim ACC As New Access.Application
ACC.OpenCurrentDatabase "B.mdbのフルpath" '外部MDBへ接続
中略
ACC.Quit acQuitSaveNone
Set ACC = Nothing
なら少し寡黙になりました。
ただ、Autoexcec マクロからフォームを開くように設定してある場合は無効になるのですが
オプションで起動時にフォームを開く設定にしてあるとダメですね。
バッチリ現れます (^^ゞ
    • good
    • 0
この回答へのお礼

nicotinism様
大変ありがとうございました。
ご教授頂いたコードでバッチリでした!
ちょっと急いでいたので大変助かりました。
ありがとうございました。

お礼日時:2012/04/24 09:50

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