MDBへODBC接続テーブルをインポートし、主キーを作成する

これも今回の仕事で必要になった件。
ローカルにあるMDBに別PCにあるOracleデータベースのテーブルをインポートするという仕様。

意外にもSQL文でインポートできてしまい楽な処理だった。
ただインポートしたテーブルにはキー情報が無いのでDAOでキー作成が必要。

これも参考になればと思いサンプルコードを下記に掲載。
※実際に組み込んだのはこのままじゃないですが(^^;;

  1. '――――――――――――――――
  2. 'MDBへODBC接続テーブルをインポートし、主キーを作成するサンプル
  3. '――――――――――――――――
  4. Dim daoWS As DAO.WorkSpace
  5. Dim daoDB As DAO.DataBase
  6. Dim tblDef As DAO.TableDef
  7. Dim tblIdx As DAO.Index ‘主キー追加用
  8.  
  9. Set daoWS = DBEngine.Workspaces(0)
  10. Set daoDB = daoWS.OpenDatabase("C:\DB\Hoge.mdb") ‘リンクを作成するMDBを開く
  11.  
  12. 'ODBC接続先のテーブルからローカルにデータをインポートする
  13. strSQL = “SELECT * INTO hogeTbl " ‘インポート後テーブル名を指定
  14. strSQL = strSQL & " FROM ODBC_hogeTbl " ‘インポートするODBCのテーブル名を指定
  15. 'インポートするデータベースへの接続設定(ODBCでDSNを使い接続)
  16. strSQL = strSQL & " IN " [ODBC;DSN=HogeDSN;UID=hoge;PWD=hoge;]; "
  17.  
  18. daoDB.Execute strSQL ‘SQL文を実行
  19.  
  20. 'インポートしたテーブル名を指定
  21. Set tblDef = daoDB.TableDefs("hogeTbl")
  22.  
  23. '主キーの設定を行う
  24. Set tblIdx = tblDef.CreateIndex("PrimaryKey")
  25. tblIdx.Primary = True ‘主キーフラグをオン
  26. tblIdx.Fields.Append tblIdx.CreateField("Code") ‘主キーにするフィールド名
  27. 'テーブルにキーを追加
  28. tblDef.Indexes.Append tblIdx
  29.  
  30. Set tblIdx = Nothing
  31. Set tblDef = Nothing
  32.  
  33. daoDB.Close
  34. daoWS.Close
  35.  
  36. Set daoDB = Nothing
  37. Set daoWS = Nothing
[`evernote` not found]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*