Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6 / 2252 ツリー ←次へ | 前へ→

【13245】ネットワークドライブの絶対パス取得 ゆうか 18/5/7(月) 16:46 質問[未読]
【13246】Re:ネットワークドライブの絶対パス取得 亀マスター 18/5/7(月) 21:08 回答[未読]
【13247】Re:ネットワークドライブの絶対パス取得 ゆうか 18/5/10(木) 17:00 お礼[未読]

【13245】ネットワークドライブの絶対パス取得
質問  ゆうか  - 18/5/7(月) 16:46 -

引用なし
パスワード
   いつも色々と参考にさせていただいております。

AccessのVBAで現在のMDBファイルのパスを取得したいと思っています。
MDBがあるパスは、ネットワークドライブを割り当てているので
G:\test\VBA のようにパスが表示されますが、そうではなく絶対パスで
\\FileServer\test\VBA のような形式でパスを取得し、同じMDBファイルで
実行する他のプロシージャでも利用したいと思います。

Dim objFso As Object

Set objFso = CreateObject("Scripting.FileSystemObject")

Debug.Print objFso.BuildPath(Application.CurrentProject)

Set objFso = Nothing

とすると
Debug.Print objFso.BuildPath(Application.CurrentProject)のところで
型が一致しませんと言うエラーになります。

どのように記述するのが正しいかご教示頂けると幸いです。
よろしくお願い致します。

【13246】Re:ネットワークドライブの絶対パス取得
回答  亀マスター  - 18/5/7(月) 21:08 -

引用なし
パスワード
   BuildPath は第1引数に指定したフォルダに第2引数のフォルダ名を
追加した場合のフルパスを返すもので、第1引数、第2引数共に文字列型です。
一方、Application.CurrentProject は文字通り現在のプロジェクトそのものを
返すものであり、プロジェクトのパスを返すものではありません。
だから「型が一致しません」というエラーになるのです。

現在のプロジェクトのフルパスが知りたいなら、BuildPath ではなく
Application.CurrentProject.FullName か、
Application.CurrentProject.Path を使います。
前者がファイル名まで含めたフルパス、
後者がファイルのあるフォルダのパスです。

で、肝心なサーバー名を含めたパスの取得方法ですが、
以下の質問が参考になるのではないでしょうか。
私自身は試していませんが、上記で得たフルパスから
ドライブ文字を取得し、それをこの質問で出ていた
方法に通せばいけるように思います。

ht tps://dobon.net/vb/bbs/log3-14/8196.html

【13247】Re:ネットワークドライブの絶対パス取得
お礼  ゆうか  - 18/5/10(木) 17:00 -

引用なし
パスワード
   ご回答ありがとうございます。
その後、
ht tps://qiita.com/yoshida261/items/839ba9b935fb68ef0bfe
こちらを参考にして正しくパスを取得することができました。

ありがとうございました。

6 / 2252 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1012060
(SS)C-BOARD v3.8 is Free