#116 MDBファイル自身のフルパスを知るには? VBA

Accessで現在開かれているデータベースの情報は、Applicationオブジェクトの「CurrentDbメソッド」で得ることができます。このメソッドは「Databaseオブジェクト」を返します。このオブジェクトの持つプロパティ"Name"は、自分自身のデータベースのファイル名(.MDB)だけでなく、ドライブ+フォルダ情報も返します。

例えば、次のコードをイミディエイトウィンドウから実行してみて下さい。"Application."の部分は省略しても構いません。
Debug.Print Application.CurrentDb.Name
"C:\My Documents\db1.mdb" のような値が表示されるはずです。

レコードセットを扱ったりする一連のプログラムの中では、Databaseオブジェクトの変数を使って、次のような記述もできます。
Dim dbs As Database

Set dbs = CurrentDb
Debug.Print dbs.Name

また、次のようなコードによって、フルパスからMDBのあるフォルダ名だけを取得することができます。データベースがどこにあろうと、「カレントデータベースと同じフォルダにエクスポートする」といった処理に利用できます。最後にDebug.Printで表示されるstrFolder変数の内容が、ドライブ+フォルダ名です。
Dim strFolder As String

strFolder = CurrentDb.Name
strFolder = Left$(strFolder, InStrRev(strFolder, "\", , vbTextCompare))
Debug.Print strFolder

※カレントデータベースのドライブ+フォルダ名を得る方法として、次のようなものもあります。
Debug.Print Application.CurrentProject.Path & "\"
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved