プロが教えるわが家の防犯対策術!

MDBファイルのバックアップの処理を毎日タスクで流すためにVBでEXEを作ったのですがエラーが発生しました。
ランタイムエラーのようですがMDBファイルの最適化の処理を追加する前は正常に動作していました。。。
エラー内容は run-time error'13' type mismatch です。
なにかランタイムをインストール必要があるのでしょうか?
DBEngine.CompactDatabaseを使っているので参照設定で
microsoft dao3.6 object libraryを追加してからおかしいようです。
お知恵をお貸しください><


'_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
'_/ MDBファイル最適化 _/
'_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

defrg = INIfile_read("PATH", "defrag")
filename = "abc.mdb"
TempFile = Left(filename, Len(filename) - 3) & "bak" 'バックアップ名を作成
DBEngine.CompactDatabase defrg & "\" & filename, defrg & "\" & TempFile '最適化
Kill defrg & "\" & filename
filename = Left(TempFile, Len(TempFile) - 3) & "mdb"
Name defrg & "\" & TempFile As defrg & "\" & filename

A 回答 (2件)

ディストリビューションウィザードでセットアップファイルを作って、


実行環境にインストールしてないとか?
であれば、まず、それを実施してください。

実行時エラー 13 型が一致してません
みたいなやつで 
エラーメッセージが英語で出るということは
VB6ランタイムの一部が入ってないってことかも。

あと、
EXEが実行時エラーを出すということは、
エラートラップを確実に行っていないことの裏返しなので、
その辺もよく確認してみてください。
    • good
    • 0

Dim defrg As String


Dim filename As String
Dim TempFile As String
の3行が無いのが気にかかります。

exe化しない場合は宣言のない文字列型変数があっても暗黙的に宣言された事になって動くのですが、exe化する場合は明示的に宣言しないとダメだった気がします。

Dim文を足して試してみて下さい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!