VBA:Accessのリンクテーブルの作成方法(ADOX)
1.やりたいこと
VBAのADOXを使って以下のように他のAccessのテーブルからリンクテーブルを作成したい。
2.サンプルコード
ADOXを使ったサンプルコードは以下となります。
「実行1」ボタンをクリックすると「DBPath」のAccessファイルのテーブル「T_test1」(=TargetTableName)を「リンクテーブル_test1」(=LinkTableName)としてリンクテーブルが作成されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Option Explicit Private Sub 実行1_Click() Dim DBPath As String Dim TargetTableName As String Dim LinkTableName As String DBPath = "C:\Users\元DB.accdb" 'リンク元となるDBのテーブル名' TargetTableName = "T_test1" 'リンクテーブルのテーブル名' LinkTableName = "リンクテーブル_test1" Call リンクテーブル作成(DBPath, TargetTableName, LinkTableName) End Sub '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' Private Sub リンクテーブル作成(DBPath As String, TargetTableName As String, LinkTableName As String) Dim cat As New ADOX.Catalog Dim tbl As New ADOX.Table cat.ActiveConnection = CurrentProject.Connection Set tbl.ParentCatalog = cat tbl.Properties("Jet OLEDB:Create Link") = True tbl.Properties("Jet OLEDB:Link Datasource") = DBPath tbl.Properties("Jet OLEDB:Remote Table Name") = TargetTableName tbl.Name = LinkTableName cat.Tables.Append tbl Set cat = Nothing Set tbl = Nothing End Sub |
◆関連記事
AccessVBA:【DAO】テーブルのインデックス作成・削除(CREATE INDEX・UNIQUE INDEX・DROP INDEX)
【VBA】DAOを使ったテーブルのインデックスの作成と削除の方法について