Windows7上のAccess2003で、Excel2010の xlsm から「得意先かな」というフォームを開くモジュールを作成した。
Sub aa_Access得意先かなを開く() Dim mdbFullPath As String mdbFullPath = ThisWorkbook.Path & "\" & MDBName With CreateObject("Access.Application") .Visible = True '非表示にしたい場合はFalse Call .OpenCurrentDatabase(mdbFullPath) Call .Run("得意先かなを開く") End With End Sub
意気揚々とデモったところ、
- Windows7/Excel2007/Access2003 のパソコンでは‥‥ 成功!
- Windows7/Excel2007/Access2007 のパソコンでは‥‥ 瞬間的にAccessが開き、直ぐ閉じる=失敗。
- Windows7/Excel2013/Access2007 のパソコンでは‥‥ 瞬間的にAccessが開き、直ぐ閉じる=失敗。
意気消沈し帰宅。
- デスクトップのAccess2003 を 2010 にアップデートし、
ググって、ググって、Accessで動かす方式? に作り変えた。
Sub aa_Access得意先かなを開く() Dim mbTitle As String Dim objAccess As Object 'Accessのアプリケーションオブジェクトを作成する Set objAccess = CreateObject("Access.Application") 'mdbを開く objAccess.OpenCurrentDatabase ThisWorkbook.Path & "\" & MDBName 'フォームを開く objAccess.DoCmd.OpenForm "F_得意先かな", 3 'acFormDS ではコンパイルエラーになる。 objAccess.Visible = True 'Accessを表示on objAccess.UserControl = True 'その後、ユーザーに操作させる Set objAccess = Nothing End Sub
一応 動くようになったが、Accessのフォームが後ろに隠れ、タスクボタンが点滅することが嗚多い。そのような場合、タスクボタンをクリックし前に出す必要がある。