Access Tips
◆一括リンク変更
多数のテーブルの「リンク」を変更したい場合がある。
数が多くなると「リンクマネージャ」では対応しきれない。
簡単なVBAを作ったので、記載しときます。
Private Sub コマンド166_Click() Dim dbpath As String dbpath = SelectFile_FileDialog("\\landisk\disk\db\") If dbpath = "" Then Exit Sub End If RC = MsgBox(dbpath & " にリンクを設定しなおします。", 1) If RC = 1 Then Call linkset(dbpath, "t00基本情報") Call linkset(dbpath, "t013日付") '続けて同様にテーブル名を指定していく 'テーブル名は、次項のACCESSのオブジェクト一覧の表示の方法で取得すると楽ちん MsgBox "リンク設定終了" End If End SubSub linkset(dbpath As String, tblName As String) Set db = CurrentDb Set tb = db.TableDefs(tblName) tb.Connect = ";DATABASE=" & dbpath & ";TABLE=" & tblName tb.RefreshLink End SubPublic Function Public Function SelectFile_FileDialog(firstpath) As String 'メニュー「ツール」-「参照設定」で「Microsoft Office 12.0 Object Library」にチェックしておく Dim dlgfolder As FileDialog Application.FileDialog(msoFileDialogFilePicker).Title = "ファイルを選択してください" Application.FileDialog(msoFileDialogFilePicker).InitialFileName = firstpath Application.FileDialog(msoFileDialogFilePicker).AllowMultiSelect = False If Application.FileDialog(msoFileDialogFilePicker).show = -1 Then SelectFile_FileDialog = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) Else SelectFile_FileDialog = "" End If End FunctionSelectFile_FileDialogは下記のサイトを参考にさせてもらった。
http://www.feedsoft.net/access/tips/tips34.html◆ACCESSのオブジェクト一覧の表示
テーブル名などをテキストで取得したい場合、下記のSQLが便利
リンクはTYPEは6のようです。SELECT Type, Name FROM MsysObjects ORDER BY Type DESC , Name;