【ACCESS】リンクテーブルを毎回カレントディレクトリにあるCSVファイルにする

この記事は約2分で読めます。
スポンサーリンク

シンクライアント環境なので、ディレクトリがどこになるか分からない(つまりローカルの c:\hoge とかにはならない)ものの、起動するたびに accdb ファイルと同じディレクトリにあるCSVファイルをリンクテーブルとして使いたい、という要件

Dim dbs As Database
Dim tdf As TableDef
Set dbs = CurrentDb

For Each tdf In dbs.TableDefs
  With tdf
    If .Attributes And dbAttachedTable Then
      .Connect = "Text;FMT=Delimited;HDR=YES;IMEX=2;CharacterSet=932;ACCDB=YES;DATABASE=" & CurrentProject.Path
      .RefreshLink
    End If
  End With
Next tdf

リンクテーブルのテーブル定義に入っているパスを更新するループを回して実現しました

HDR=YES にしておくと、1行目をフィールド名にしてくれます

問題は、フィールドのデータ型が指定できないことかな(ACCESS が自動的に型を決めてしまう

リンクテーブルってパフォーマンス的にも遅いので、どうしてもでなければ使わない方がいいような気がしてなりませんが…😬💦

コメント

タイトルとURLをコピーしました