Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2016)
ファイル選択ダイアログを開いた後フォルダが操作できません
投稿日時: 19/10/28 18:27:18
投稿者: マヨイ

@以下のプログラムでファイル選択ウインドウを開きファイルのパスを取得してそのパスを元にテーブルへエクセルファイルを読み込んでいます。
A読み込むファイルはWEBのページからダウンロードし"C:\tool\設計図面"に格納します。
BACCESSを閉じる際に"C:\tool\設計図面"をフォルダごと削除し、"D:\共有\\tool\設計図面"(仮)からフォルダをコピーしています。(コピー元は社内LAN上の共有フォルダです)
 Dim intRet As Integer
 Dim GetFileName As string
   With Application.FileDialog(msoFileDialogOpen)
    .Title = "ファイル選択ダイアログ"
    .Filters.Clear
    .Filters.Add "すべてのファイル", "*.*"
    .Filters.Add "すべてのファイル", "*.csv"
    .Filters.Add "すべてのファイル", "*.xlsx"
    .FilterIndex = 1
    .AllowMultiSelect = False
    .InitialFileName = "C:\tool\設計図面"
    intRet = .Show
     If intRet <> 0 Then
      GetFileName = Trim(.SelectedItems.Item(1))
     Else
      GetFileName = ""
     End If
   End With
以下状況です↓↓
○この処理を実行した後にACCESSを閉じてフォルダを削除する処理のときに「書き込みができません」とエラーになってしまいます。
@上の文だけで処理を実行した後も同様なのでExcelファイルをテーブルに読み込む命令は問題ないと思います。
Aまた.InitialFileName = "C:\tool\設計図面" を 
.InitialFileName = "C:\tool"とすると問題なく削除の処理ができます。ただしオーナーの要望のため初めに開くディレクトリは変更することができません。
Bフォームを全て閉じた状態で削除してもだめでした。
Cリソースモニターでフォルダのハンドルを見ると「MSACCESS.EXE」が使用しているのでACCESSが使用中となっているのは間違いないようです。
わかりづらい文章で申し訳ありませんが解決方法をご存知の方がおりましたらご教授をお願いしたいです。
どうぞよろしくお願いいたします。

回答
投稿日時: 19/10/29 10:32:44
投稿者: sk

引用:
With Application.FileDialog(msoFileDialogOpen)

引用:
この処理を実行した後にACCESSを閉じてフォルダを削除する処理のときに
「書き込みができません」とエラーになってしまいます。

「フォルダを削除する処理」を実行する直前に、
ChDir ステートメントを実行してカレントフォルダを
変更なさればよろしいのではないかと。
 
-------------------------------------------------------------
 
ChDir "C:\"
 
-------------------------------------------------------------

投稿日時: 19/10/30 16:02:38
投稿者: マヨイ

>>sk様
カレントディレクトリ変更で解決しました。
ありがとうございました。