• ベストアンサー

CurDirについて

CurDirのヘルプを見ると、「指定したドライブの現在のパスを表す」と記載されていますが、 ようするに、 accessで言うのならば、 ツール→オプション→全般タブの 「既定のデータベースフォルダ」の値を取得すると言う意味でしょうか? Debug.Print CurDir() と Debug.Print CurrentProject.Path は 同じ意味だと思っていたのですが、違うのですよね?現在混乱中です。

質問者が選んだベストアンサー

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.2

DOSの「カレントディレクトリ」は、ドライブごとに保持されています。 ですので、ドライブ名を指定したとき、そのドライブのカレントディレクトリがいまどこになっているか、というのが返されます。 (ドライブ名を省略したときは、DBのあるドライブを指定したのと同じことになります。) CurrentProject.Path は、自分のデータベースが置いてある、パス名です。 パス名には、ドライブ名と、ディレクトリが含まれます。 ですので、両者は違う物になります。 ----以下余談---- MS-DOSの「カレントディレクトリ」の実験 ・「コマンド プロンプト」を起動します。 C:\Document and Settings\(ユーザー名)> ・C: ドライブのルートのTempフォルダに移動します。 C:\Document and Settings\(ユーザー名)>cd \temp C:\temp> ・D:ドライブのルートに、フォルダ「abc」を作成します。 C:\temp>mkdir d:\abc C:\temp> ・D:ドライブに移動します。 C:\temp>D: D:\> ・abcフォルダに移動します。 D:\>cd abc D:\abc> ・ここで、C:ドライブに戻ってみます。 D:\abc>C: C:\temp> ・また、D:ドライブに移動してみます。 C:\temp>D: D:\abc> るまり、C: ドライブでは「C:\temp」がカレントディレクトリ、D: ドライブでは「D:\abc」がカレントディレクトリになっています。 CurDir() 関数は、この、DOSレベルの、カレントディレクトリを、取得します。

LCBMLL
質問者

お礼

ありがとうございます。

その他の回答 (1)

回答No.1

仰るとおり違います。 CurrentProject.Path は、そのMDBファイルが存在する場所 CurDir() は、今現在いる場所 を示します。 MDBファイルが存在する場所は固定ですが、 今現在いる場所は、ChDir()関数等によって変動します。

LCBMLL
質問者

お礼

ありがとうございます。

関連するQ&A