オブジェクトへの参照を行わず、MDBを最適化するには?

解決


ちゃる  2007-07-06 17:45:33  No: 99166

お世話になります。
早速ですが質問させていただきます。

現在VB6を使って開発しています。

VB6からAccessアプリケーションへの参照を行わず
MDBを最適化する方法はありませんか?


現在はこのように処理を行っていますが、
このプログラムが動作する環境にAccessが入っていない場合は
エラーがでてしまいます。
このプログラムが動作する環境にAccessが入っていないことを前提として作っているのでここでいきづまってしまいました。

どなたかお力を貸して頂けないでしょうか。



    'FileSystemObject (FSO) の新しいインスタンスを生成する
    Set hFso = CreateObject("Scripting.FileSystemObject")

    'ファイル存在チェック
    If Dir$(strNewFileName) <> "" Then
        '既に同じ名前のファイルがあった場合は削除
        Call hFso.DeleteFile(strNewFileName, True)
    End If


    Set acApp = CreateObject("Access.Application")

    'MDB最適化
    acApp.DBEngine.CompactDatabase strObjFilePath, strNewFileName


オショウ  2007-07-06 18:22:19  No: 99167

ttp://202.51.11.113/bbs6/0002/das86.html
ここの中ほどを参照・・・

該当マシンにAccessが無くても最適化できます。

以上。


もげ  2007-07-09 09:18:07  No: 99168

別解として、

http://homepage2.nifty.com/inform/vbdb/dao_compactdb.htm
DAOを参照設定してから、
>acApp.DBEngine.CompactDatabase strObjFilePath, strNewFileName
を、
DBEngine.CompactDatabase strObjFilePath, strNewFileName
にするだけでもいけるんじゃないかと。


ちゃる  2007-07-09 09:33:11  No: 99169

おはようございます。
オショウさん、もげさんお返事ありがとうございます!
これからお二人の助言を参考に試してみたいと思います。


ちゃる  2007-07-09 10:20:16  No: 99170

解決しました。
お二人に教えていただいたことを、これからの開発につなげていきたいと思います。
本当にありがとうございました。


ちゃる  2007-07-09 10:21:02  No: 99171

解決フラグ立てるの忘れてました;;


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加