- ベストアンサー
VBからmdbファイル(Access2000)の特定のフォームを開きたい?
VisualBasicのフォームに配置したコマンドボタンをクリックすることで、特定のmdbファイルをAccess2000で開き、開くと同時に特定のフォームが表示されるようにしたいのですが、こんなことできますか?できるとすればどのようにすればよいのですか? 例えば、C:\商品管理\在庫一覧.mdbにフォーム商品があるとしたとき、 Form1のcommand1をクリックすると、C:\商品管理\在庫一覧.mdbがAccess2000で開き、フォーム商品が最初に表示されるようにしたいのですが・・・ ちなみに、Access2000の起動時の設定では他のフォームが最初に開くようになっています。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
オートメーションを使ってAccessを制御しましょう。 で、他のフォームが最初に開くようになっていることなので、最初に開くフォームを閉じてからAccessを表示するようにすればいいと思います。 Dim acs as Object 'AccessのApplicationオブジェクトを取得する。 Set acs = CreateObject("Access.Application") 'c:\test.mdbを開くacs.OpenCurrentDatabase "c:\test.mdb" '起動時に開かれたフォームを閉じる '2はacForm定数のこと acs.Close 2,"フォーム名" 'Accessを表示させる acs.Visible = True '表示させたいフォームを開く acs.OpenForm "フォーム名" こんな感じで。 最後に、Accessを終わらせるときは 'オブジェクトの開放 Set acs = Nothing で、オブジェクトを開放してください。
お礼
ご回答ありがとうございます。上のコードをそのまま貼り付けてためしてみたところ、 acs.OpenForm "フォーム名" 及びacs.OpenForm "フォーム名" のところで、「このメソットはサポートしていません・・・」とのエラーが発生しました。 いろいろ悩んで、試してみたところ、 acs.Docmd.OpenForm "フォーム名" acs.Docme.OpenForm "フォーム名" で上手くいきました。どうもありがとうございました。
補足
先のacs.Docme.OpenForm "フォーム名" は間違いで、acs.Docmd.OpenForm "フォーム名"ですので 訂正します。