Access 2013 としているけど、Access 2007 / 2010 と変わらんでしょう。違いがありそうなときは別途考える。
Access 2013 でSQL Server などODBC ソースに接続できる リンク テーブルの作り方については、
SQL Server のデータにリンクするにあるから特に説明はない。DSN-less とかの工夫するくらいだろうか。
ともあれ、SQL Server にテーブルを作成して、ODBC リンク テーブルを。
CREATE TABLE [dbo].[Table_1]( [ID] [int] IDENTITY(1,1) NOT NULL, [F_Num] [int] NULL, CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED ([ID] ASC) ON [PRIMARY] )
Sub CreateODBCLinkTable() Dim tdf As TableDef Set tdf = CurrentDb.CreateTableDef("") tdf.Connect = "ODBC;Driver={...." tdf.SourceTableName = "dbo.Table_1" '検証用:パスワードは記憶させる tdf.Attributes = DAO.TableDefAttributeEnum.dbAttachSavePWD tdf.Name = "Table_1" CurrentDb.TableDefs.Append tdf Application.RefreshDatabaseWindow End Sub
できました |
SQL Server を前提ににしているから SQL Server Profiler で ガッツリ みれるし、その気になれば パケット を キャプチャ すればよいだろう。 だけど面倒なので、Access 側で実行計画 / ShowPlan では見れない内容が観察できたらよいかなと。そこで、TraceSQLMode を有効化してログを出力してもらいます。
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\Engines\ODBC' ` -Name TraceSQLmode ` -Value 0x00000001Click-to-Run 版や 64bitOS上のAccess 32bit の場合は、エントリが異なる。当然、Access 2007 / 2010 でも異なる。レジストリ エディタ で "TraceSQLmode" を検索すればよいけど、気が向いたら調べる。
ぼちぼち、続きます。
0 件のコメント:
コメントを投稿