これも今回の仕事で必要になった件。
ローカルにあるMDBに別PCにあるOracleデータベースのテーブルをインポートするという仕様。
意外にもSQL文でインポートできてしまい楽な処理だった。
ただインポートしたテーブルにはキー情報が無いのでDAOでキー作成が必要。
これも参考になればと思いサンプルコードを下記に掲載。
※実際に組み込んだのはこのままじゃないですが(^^;;
'――――――――――――――――
'MDBへODBC接続テーブルをインポートし、主キーを作成するサンプル
'――――――――――――――――
Dim daoWS As DAO.WorkSpace
Dim daoDB As DAO.DataBase
Dim tblDef As DAO.TableDef
Dim tblIdx As DAO.Index ‘主キー追加用
Set daoWS = DBEngine.Workspaces(0)
Set daoDB = daoWS.OpenDatabase("C:\DB\Hoge.mdb") ‘リンクを作成するMDBを開く
'ODBC接続先のテーブルからローカルにデータをインポートする
strSQL = “SELECT * INTO hogeTbl " ‘インポート後テーブル名を指定
strSQL = strSQL & " FROM ODBC_hogeTbl " ‘インポートするODBCのテーブル名を指定
'インポートするデータベースへの接続設定(ODBCでDSNを使い接続)
strSQL = strSQL & " IN " [ODBC;DSN=HogeDSN;UID=hoge;PWD=hoge;]; "
daoDB.Execute strSQL ‘SQL文を実行
'インポートしたテーブル名を指定
Set tblDef = daoDB.TableDefs("hogeTbl")
'主キーの設定を行う
Set tblIdx = tblDef.CreateIndex("PrimaryKey")
tblIdx.Primary = True ‘主キーフラグをオン
tblIdx.Fields.Append tblIdx.CreateField("Code") ‘主キーにするフィールド名
'テーブルにキーを追加
tblDef.Indexes.Append tblIdx
Set tblIdx = Nothing
Set tblDef = Nothing
daoDB.Close
daoWS.Close
Set daoDB = Nothing
Set daoWS = Nothing
- Download this code: mdb_odbc_import_sample.txt