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
Please give us your valuable comment