Accessのリンクテーブルでテーブル名に含まれるプレフィクスを一括除去する方法

土曜日 , 1, 8月 2015 Leave a comment

Accessは非常に便利なツールで、SQL ServerやOracle、PostgreSQLといった本格的なデータベースのクライアントとしても使えます。
そのとき、ODBC経由でリンクテーブルを作成するのが一般的な方法ですが、Accessにリンクテーブルが作成される際、接続先データベースのユーザ名などがプレフィクスとして元々のテーブル名の前に付加されてしまいます。
Accessの機能を使い編集操作を行う分には影響が少ないのですが、SQLを用いて一括操作を行おうとするとプレフィクスが邪魔になるときがあります。
(サーバで実行しているSQLをAccess上で使おうとすると、テーブル名が異なってしまうので逐一修正する必要が生じ非常に面倒です。) 

このプレフィクスを一括で除去するプログラムです。
Accessを起動後、Alt+F11キーを押してマクロ編集画面(VBA)を開き、下記のコードをコピー&ペーストで適当なモジュールに貼り付け、実行します。
実行の前に、プレフィクスを適宜修正してください。
(確認はAccess 2013で行っています。Access 95以降であれば動作が可能だと思います)

 

' This software is distributed under the license of NYSL.
' ( http://www.kmonos.net/nysl/ )
Sub StripPrefix()

    ' 削除したいプレフィックス
    Const prefix As String = "DB2ADMIN_"
    
    Dim tbldefs As TableDefs
    Dim tbldef As TableDef
    
    Set tbldefs = CurrentDb.TableDefs
    
    For Each tbldef In tbldefs
        If tbldef.Connect <> "" Then
            tbldef.Name = Mid(tbldef.Name, Len(prefix) + 1)
        End If
    Next
    
    tbldefs.Refresh

End Sub
Tags:,

Please give us your valuable comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください