001:Access:外部テーブルリンクの更新
Aceessデータベーステーブルの外部リンクの接続を変更します。 テスト用サンプルでは、アプリケーションと同じフォルダにあるデータベースに接続するようにしました。プログラムをインストールする際にアプリケーション本体と、データベースファイルを同じフォルダに入れておけば、フォルダ構成が変わっても、自動的にリンクを変更できます。
Option Compare Database
'
'+-----------------------------------------------------------
' リンクテーブル変更 Version 1.00 (2017.02.13)
' Sub SetLinkTable(ff As String, tbname As String)
'+-----------------------------------------------------------
' 機能:リンクテーブルの外部リンク先を変更する
'+-----------------------------------------------------------
' Input:
' ff ---> データベースファイル名
' tbname ---> テーブル名称
' Output:
' 戻り値 ---> 0:成功 1:失敗
'+-----------------------------------------------------------
Function SetLinkTable(ff As String, tbname As String)
Dim db As DAO.Database
Dim tb As DAO.TableDef
On Error GoTo ERR00
Set db = CurrentDb
Set tb = db.TableDefs(tbname)
tb.Connect = ";DATABASE=" & ff & ";TABLE=" & tbname
tb.RefreshLink
db.Close
SetLinkTable = True
Exit Function
ERR00:
SetLinkTable = False
End Function
'**************************************************
'* Sub SetLinkTable_TEST()
'**************************************************
Sub SetLinkTable_TEST()
Dim rts As Integer
Dim dd As String
Dim ff As String
Dim tb As String
dd = Application.CurrentProject.Path & "\"
ff = dd & "vba_DB.accdb"
tb = "tb売上"
Debug.Print "DB : "; ff
Debug.Print "TB : "; tb
rts = SetLinkTable(ff, tb)
Debug.Print rts
End Sub