- ベストアンサー
EXCELのVBAでACCESSにアクセスすると「My Documents」フォルダに.odcファイルが多数生成される
- EXCELのVBAでACCESSにアクセスすると「My Documents」フォルダに.odcファイルが多数生成される。
- AテーブルのデータをEXCELのシートに取り込むために、EXCELで「外部データの取り込み」からリンクしています。
- EXCELをオープン時に自動でデータを更新させるため、VBAの更新処理を使用しています。しかし、処理するたびに「My Data Sources」フォルダに.odcファイルが生成される問題があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Accessのバージョンによって、バッチを当てないと 様々な症状を引き起こすことが、質問のなかで出ています。 同じファイルを同じ設定で同じ機種のPCで稼動させたところ たった一台だけがエラーを起こし、その原因がどうしても つかめない、というものがいくつかありました。その いくつかは最新のバッチを当てて改善した、あるいは そのPCだけバッチを当てていなかったというものでした。 そのあたりはどうでしょうか。
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
訂正です。 >buf = Dir("C:\マイドキュメント\業務DB.odc") となっていますが、 strPATH = Dir("C:\マイドキュメント\業務DB.odc") としてください。変数の設定が違っていました。
お礼
有難うございます。
補足
ご返答有難うございます。 .odcファイルが多数生成される件ですが、他のACCESSでは1つの.odcファイルしか生成されません。 使用勝手は同様で、処理する日付をフォルダ名として、DBがあるフォルダをまるごとコピーして使っています。VBAも同じロジックです。 ご教示頂いたファイル削除方法も選択肢にさせて頂きたいと思いますが、他にACCESSの設定などで回避できる方法はありませんでしょうか? 自分自身、なぜ他のACCESSが正常に動作していて、このACCESSだけが複数の.odcファイルが生成されるかわかりません。
- piroin654
- ベストアンサー率75% (692/917)
状況がよくわかりませんが、ファイルの存在を 確認し、あれば削除して接続、なければそのまま 接続、ということで、Dir関数、あるいは FileSystemObjectを使用する二つの方法があります。 Dir関数の場合、ファイルがすぐ削除されるか どうかわからないので、確認しながら試して みてください。動作確認はしていませんが、 使えるようだったらどうぞ。 (1) Sub Test1() Dim strPATH As String buf = Dir("C:\マイドキュメント\業務DB.odc") If strPATH = "" Then MsgBox ("ファイルはありません") '接続開始の関数を呼ぶ Else Kill strPATH '接続開始の関数を呼ぶ End If End Sub (2) Sub Test2() Dim fsObj As Object Dim strFilePath As String Set fsObj = CreateObject("Scripting.FileSystemObject") strFilePath = "C:\マイドキュメント\業務DB.odc" If fsObj.FileExists sTrFilePath Then fsObj.FileDelete strFilePath '接続開始の関数を呼ぶ Else MsgBox("ファイルはありません") '接続開始の関数を呼ぶ End If Set fsObj = Nothing End Sub
お礼
有難うございます。 参考にさせて頂きます。
お礼
お礼遅くなり申し訳ございません。 結局、真の原因はつかめず、piroin654さんからご教授頂きましたファイルを削除する方法で回避することになりました。 仕事の案件だったので助かります。 有難うございました。