アプリ版:「スタンプのみでお礼する」機能のリリースについて

オフィス2007です。
アクセスからアクセスを立ち上げたいのですが、うまくいきません。

test1.accdbにフォームとコマンドボタンを設置して、

Private Sub コマンド1_Click()
Dim acApp As Object
Set acApp = CreateObject("Access.Application")
acApp.OpenCurrentDatabase C:\test2.accdb"
acApp.Visible = True
End Sub

を実行したのですが、アクセスのアプリケーションが一瞬だけ開いて、閉じてしまいます。

「 acApp.Visible = True」の部分に、ブレークポイントを設定して、ステップインしてみたところ、
acApp.Visible = Trueでアクセスのアプリケーションが立ち上がり、test2.accdbが表示されますが
「End Sub」で閉じてしまいます。

ずっと開き続けるにはどうすればいいでしょうか?

A 回答 (3件)

ご質問への回答とは離れますが「2つ立ち上げて何をなさりたいのか」を教えていただけますか?

    • good
    • 0
この回答へのお礼

本来は二つのファイルを立ち上げたいのならば、
C:\にはいっている
test1.accdb
test2.accdb
をクリックして開くか、
スタートアップに入れて起動時に開けばいいのですが
test1.accdbのフォームのコマンドボタンを押してあるプロシージャーを実行するタイミングでtest2.accdbを開きたいのです。

説明不足で申し訳ございません。
再度ご回答宜しくお願いいたします。

お礼日時:2012/07/12 19:35

Dim acApp As Object



をグローバル変数にすればどうでしょう。

ちなみに

"C:\test2.accdb"

まえダブルクォーテーションがありません。
    • good
    • 0
この回答へのお礼

Public acApp As Object
にしたら、できました!

ダブルクォーテーションつけわすれてました。
ありがとうございました。大変参考になりました。

お礼日時:2012/07/19 20:45

提示された VBA でやろうとした場合、



acApp.UserControl = True

を記述追加してみて、どうなりますか。



※ ただ単に Accessファイルを別プロセスで起動したい場合

・コマンドボタンの HyperlinkAddress に起動したいファイルパスを設定するとか
・FollowHyperlink でそのファイルパスを指定するとか
・CreateObject("Shell.Application").ShellExecute でそのファイルパスを指定するとか
・API の ShellExecute を使って
  Call ShellExecute(0, "OPEN", ファイルのパス, "", "", 1)

等々、実現する方法はいろいろあると思います。

※※ それぞれ起動された後の表示の違い等は実際にやってみてください。
    • good
    • 0
この回答へのお礼

方法はいくつかあるのですね。ありがとうございました。

お礼日時:2012/07/19 20:45

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