2018-09-06
Access覚書 リンク貼替
結構間が開いてしまった。
1か月に1度ぐらいはせめて投稿しようと思いつつ。
テーブルやらクエリやらがAサーバのDBをみているのだが、Bサーバのテスト環境のDBをみるように変えたい
となったとき、結構大変である。
標準機能で変更できるのかどうか、やり方がわからん。
ということで、VBAでできないか探してみたら、やはり一括でどべっと変更できるやり方があった。
' テーブルとクエリのリンク先を変更
' 引数 :from_srv = 変更前(例:172.0.0.1)
' :to_srv = 変更後(例:196.128.1.10)
Sub ChangeLinks(from_srv As String, to_srv As String )
Dim db As DAO.Database
Dim tb As DAO.TableDef
Dim qr As DAO.QueryDef
Set db = CurrentDb
On Error Resume Next
For Each tb In db.TableDefs
If tb.Connect <> "" Then
tb.Connect = Replace(tb.Connect, from_srv , to_srv) 'サーバ変更
tb.RefreshLink ' テーブルはリフレッシュ
End If
Next
For Each qr In db.QueryDefs
If qr.Connect <> "" Then
qr.Connect = Replace(qr.Connect, from_srv , to_srv) 'サーバ変更
End If
Next
End Sub
パスワードとかだと、
Replace(tb.Connect, “PWD=***”, “PWD=***”)
ってな感じで変換してやる。