電子書籍の厳選無料作品が豊富!

Access VBA での有効なパスチェック

お世話になっております。

Access2002 VBAで、画面入力されたパスが有効なら、
そこにテーブルの内容をExcel出力する。といったことをしているのですが、
画面入力されたパスが、
たとえば「C:\\\\\\tmp\\\\\\\」などと入力された場合、
フォルダチェックに用いているDir関数ではOKなのですが、
Excel出力するDoCmd.TransferSpreadsheetでエラーとなってしまいます。

ここでのエラーが、実行時エラー:2220なので、例外処理で拾っているのですが、
フォルダチェックの段階で、はじくよい方法はあるでしょうか?


例文です>
str_tmpPath = txt_Path.Value  'ここで「C:\\\\\\tmp\\\\\\\」と入力されたとする

'有効なパスかチェックする
If Dir(str_tmpPath, vbDirectory) = "" Then  '上記のパスで通ってしまう。戻り値は"."
  MsgBox "入力しなおして"
  End
End If

str_SavePath = str_tmpPath & "ファイル名"

'Excel出力
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, テーブル名, str_SavePath, True  'ここで実行時エラー:2220が発生

以上、よろしくお願いいたします。

A 回答 (1件)

FileSystemObjectのFolderExistsメソッドを使用すればうまくいくようです。


FileSystemObjectで検索してみてください。
    • good
    • 0
この回答へのお礼

回答が遅くなり、申し訳ありません。

結局、以下のように試してみましたがダメでした。

Private Sub コマンド271_Click()
  Dim str_Path As String 'パス
  Dim fFso As Object 'ファイルシステムオブジェクト

  str_Path = txt_Path.Value

  'フォルダの存在確認
  Set fFso = CreateObject("Scripting.FileSystemObject")
  If (fFso.FolderExists(str_Path) = False) Then
    MsgBox "無効なパス"
  End If

  Set fFso = Nothing

End Sub

正常な記述じゃないと、認識しませんでした。

お礼日時:2010/03/02 17:08

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