#627 | リンク先データベースファイルのあるフォルダを取得するには? | VBA | |
リンクテーブルのリンク先となっているデータベースファイルは、そのテーブルの「TableDef」オブジェクトの「Connect」プロパティを調べることで取得することができます。 ただ、このプロパティには「;DATABASE=」といった文字列も含まれています。 そこでここでは、その文字列とともに、データベースの「ファイル名+拡張子」部分を除外して、「ドライブ+フォルダ名」だけを取り出すサンプルプロシージャを紹介します。 まず、標準モジュール等に次のようなプロシージャを記述します。 Public Function GetLinkDBFolder(strChkTable As String) As String 'リンク先データベースファイルのあるフォルダを取得する Dim dbs As Database Dim tdf As TableDef Dim strFolder As String Dim intDelm1 As Integer Dim intDelm2 As Integer Set dbs = CurrentDb '引数のリンクテーブルの定義を開く Set tdf = dbs.TableDefs(strChkTable) 'テーブルのConnectプロパティを解析 strFolder = tdf.Connect intDelm1 = InStr(strFolder, ";DATABASE=") + Len(";DATABASE=") intDelm2 = InStrRev(strFolder, "\") strFolder = Mid$(strFolder, intDelm1, intDelm2 - intDelm1 + 1) '返り値を設定 GetLinkDBFolder = strFolder End Function リンクテーブルについては、そのデータベース内のすべてのテーブルを探索して最初に見つかったリンクテーブルについて「TableDef」を調べるという方法もあります。しかし予期しないテーブルがリンクされているということは考えづらいのと、複数のデータベースファイルのテーブルをリンクしている可能性も考え、チェックするテーブル名は引数としてプログラム上で指定するようにしています。 下図はイミディエイトウィンドウでの実行例です。 |
|||
|
Copyright © T'sWare All rights reserved |