Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8316 / 13646 ツリー ←次へ | 前へ→

【34030】ExcelからAccessのマクロの実行 わし 06/1/25(水) 11:38 発言[未読]
【34062】Re:ExcelからAccessのマクロの実行 kobasan 06/1/25(水) 18:44 発言[未読]
【34069】Re:ExcelからAccessのマクロの実行 わし 06/1/25(水) 19:14 お礼[未読]
【34071】Re:ExcelからAccessのマクロの実行 kobasan 06/1/25(水) 19:44 発言[未読]
【34072】Re:ExcelからAccessのマクロの実行 わし 06/1/25(水) 20:49 お礼[未読]

【34030】ExcelからAccessのマクロの実行
発言  わし  - 06/1/25(水) 11:38 -

引用なし
パスワード
   以前にも同じような質問があったかと思いますが、
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=5609;id=excel
Excel97,Access97 から 2003へのバージョンアップに伴い
下記マクロが実行できません。
どなたかご存知の方、教えて下さい。


********************************
Excelから"A.mdb"というAccessの"Bマクロ"というマクロを実行し、
"Bマクロ"終了後に"A.mdb"を閉じるマクロ。
'=================================================
Sub test()
  Dim acc As variant
  Set acc = CreateObject("access.application")
  acc.Visible = True
  acc.OpenCurrentDatabase "d:\フォルダ名\A.mdb"
  acc.DoCmd.RunMacro "Bマクロ"
  acc.CloseCurrentDatabase
  acc.Quit
End Sub

【34062】Re:ExcelからAccessのマクロの実行
発言  kobasan  - 06/1/25(水) 18:44 -

引用なし
パスワード
   ▼わし さん 今晩は。

私の2003では、問題なく動きました。

'Excel2003側のマクロ
Sub test()
Dim acc As Object
  Set acc = CreateObject("Access.Application")
  acc.Visible = True
  acc.opencurrentdatabase "D:\test\test.mdb"
  acc.docmd.runmacro "B_macro"
  acc.closecurrentdatabase
  acc.Quit
  Set acc = Nothing
End Sub

'Access2003側のモジュールで、Module1にプロージャを
Function macro()
  MsgBox "mdbです"
End Function
のようにつくり、

'Access2003のマクロで
プロージャの実行 macro ()
を登録し、マクロ名を"B_macro"で保存し、終了してやったところ、
うまく動きました。

"Bマクロ"がAccessのモジュールにあるのか、マクロにあるのか
もう一度確認してみてください。


>以前にも同じような質問があったかと思いますが、
>(http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=5609;id=excel

  acc.Run "Bマクロ"
  '↑"Bマクロ"が標準モジュールにある場合
'   ↑を↓に変更してください
   acc.DoCmd.RunMacro "Bマクロ"
'   これに変更してください

の記事があるように。

【34069】Re:ExcelからAccessのマクロの実行
お礼  わし  - 06/1/25(水) 19:14 -

引用なし
パスワード
   ▼kobasan さん:回答ありがとうございます。

私が言っている Bマクロ は、標準モジュールではなく、
普通のマクロになります。
私のPCでは、
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
実行時エラー'7866
データベースファイルがないか、他のユーザーが排他モードで開いているため、
このデータベースを開くことができません。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
この様にエラーになってしまいます。
他の人がファイルを開いている事は無いのに、どうしてでしょうか?


>▼わし さん 今晩は。
>
>私の2003では、問題なく動きました。
>
>'Excel2003側のマクロ
>Sub test()
>Dim acc As Object
>  Set acc = CreateObject("Access.Application")
>  acc.Visible = True
>  acc.opencurrentdatabase "D:\test\test.mdb"
>  acc.docmd.runmacro "B_macro"
>  acc.closecurrentdatabase
>  acc.Quit
>  Set acc = Nothing
>End Sub
>
>'Access2003側のモジュールで、Module1にプロージャを
>Function macro()
>  MsgBox "mdbです"
>End Function
>のようにつくり、
>
>'Access2003のマクロで
>プロージャの実行 macro ()
>を登録し、マクロ名を"B_macro"で保存し、終了してやったところ、
>うまく動きました。
>
>"Bマクロ"がAccessのモジュールにあるのか、マクロにあるのか
>もう一度確認してみてください。
>
>
>>以前にも同じような質問があったかと思いますが、
>>(http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=5609;id=excel
>
>  acc.Run "Bマクロ"
>  '↑"Bマクロ"が標準モジュールにある場合
>'   ↑を↓に変更してください
>   acc.DoCmd.RunMacro "Bマクロ"
>'   これに変更してください
>
>の記事があるように。

【34071】Re:ExcelからAccessのマクロの実行
発言  kobasan  - 06/1/25(水) 19:44 -

引用なし
パスワード
   ▼わし さん 今晩は。
>
>私が言っている Bマクロ は、標準モジュールではなく、
>普通のマクロになります。
>私のPCでは、
>−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
>実行時エラー'7866
> データベースファイルがないか、他のユーザーが排他モードで開いているため、
>このデータベースを開くことができません。
>−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
>この様にエラーになってしまいます。
>他の人がファイルを開いている事は無いのに、どうしてでしょうか?

私の場合もパス名が間違っていたとき、同様のメッセージが出ましたので

>>  acc.opencurrentdatabase "D:\test\test.mdb"

のパス名を、もう一度確認してみてください。もしかしたら、これで引っかかっているのかもしれません。ちがっていたらごめんなさい。

【34072】Re:ExcelからAccessのマクロの実行
お礼  わし  - 06/1/25(水) 20:49 -

引用なし
パスワード
   ▼kobasan さん 回答ありがとうございます。
 結局のところ、Access側のセキュリティレベル設定の問題ということで、
 解決しました。


>▼わし さん 今晩は。
>>
>>私が言っている Bマクロ は、標準モジュールではなく、
>>普通のマクロになります。
>>私のPCでは、
>>−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
>>実行時エラー'7866
>> データベースファイルがないか、他のユーザーが排他モードで開いているため、
>>このデータベースを開くことができません。
>>−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
>>この様にエラーになってしまいます。
>>他の人がファイルを開いている事は無いのに、どうしてでしょうか?
>
>私の場合もパス名が間違っていたとき、同様のメッセージが出ましたので
>
>>>  acc.opencurrentdatabase "D:\test\test.mdb"
>
>のパス名を、もう一度確認してみてください。もしかしたら、これで引っかかっているのかもしれません。ちがっていたらごめんなさい。

8316 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free