- ベストアンサー
VBからAccessのマクロを動かしたい(最適化したい)
開発環境=NT4SP4 VB5 Access97 VBからMDBファイルを最適化するプログラムを作成しているのですが、 現在わかっているやり方は 最適化したファイルを作る→最適化元ファイルを削除→最適化後ファイルのファイル名を元ファイル名に直す。 という手順を踏んでいるのです。 これをAccessのマクロならば上記の手順のようにファイル削除したりしなくても 最適化が行えるそうなのです。 そこでVBからAccessのマクロを実行する方法がわからなくて困っているのです。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 過去にExcelVBAからAccessマクロを実行するという質問に答えたことがあります。 VBでも同じですので下記アドレスを参考にして下さい http://oshiete1.goo.ne.jp/kotaeru.php3?q=314959
その他の回答 (3)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
RDOじゃなくJROでした。。。 ※Microsoft Jet and Replication Object 2.X Libraryを参照設定 Option Explicit Public Const CONNECTCONST As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Public Sub Main() Call DbCompact("c:\db1.mdb") End Sub Public Sub DbCompact(inFilePath As String) Dim objJROEngine As JRO.JetEngine Dim strWkDbPath As String '本当はここで重複しないファイル名をセットする 'ロジックはおまかせします strWkDbPath = "c:\wk.mdb" '最適化されたMDBを作成する Set objJROEngine = New JRO.JetEngine objJROEngine.CompactDatabase CONNECTCONST & inFilePath, CONNECTCONST & strWkDbPath Set objJROEngine = Nothing '削除 Kill inFilePath 'リネーム Name strWkDbPath As inFilePath End Sub
お礼
VBでMDBファイルの最適化を行うにはこの方法が最もポピュラーのようです。 というかこの方法しか見つけることが出来ませんでした(^^; ま、ちゃんと最適化が終了してからリネームするみたいなのでこの方法で十分なのでしょう。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
VBでマク呼び出しの最適化って出来たっけ? RDOでやる方法があります。 サンプルどっかいっちゃったw
- Te-Sho
- ベストアンサー率52% (247/472)
VBからマクロを呼ぶのではなくmdbを開いたときにマクロを実行させると言う考えで行けば autoexecと言うマクロを作って置けばmdbを開いたときにそのマクロを実行します。 そのautoexecというマクロに最適化とmdbの終了を書いておけば良いのでは?
お礼
この方法で、Accessのマクロを動かすことが出来ました。 しかし、最適化のマクロ(キー送信のやつ)はAccess自体を起動していないと 機能しませんでした。残念。