寫VB程式將Oracle資料匯到MDB
如何用VB寫程式將Oracle資料匯到MDB呢?
方法:
1. 用迴圈 , 但若寫不好 , 效能上會比較慢
2. 透過 ODBC 來匯 , 匯大量資料時效能上快很多ㄛ
2-1. 如果SQL語法有Join 2 個Table以上 , 需先將篩選的資料Create成View 或 Table
2-2. 用DAO建立Database物件連MDB
2-3. Database物件.Execute "select * into [;database=路徑+目前MDB檔名.MDB].[目的資料表] " & _
" from [ODBC;DRIVER={Oracle ODBC Driver};" & _
"SERVER=DatabaseAlias;UID=UserID;PWD=Password;DBQ=DatabaseAlias;" & _
"DBA=W;APA=T;FEN=T;FRC=10;FDL=10;LOB=T;RST=T;FRL=F;PFC=10;TLO=O;]" & _
.[Owner.Oracle的資料表或視觀表名稱]"
PS: Oracle 的 ODBC Driver , 因版本不同而ODBC Driver 名稱也不同
9i 以後版本 , Driver 名稱不同, 9i 為 Oracle in OraHome9? , ? 為 0 , 1 , 2 ..
DatabaseAlias 為 Oracle 服務名稱 ( Net Manager 中設定之名稱 )
UserID 為資料庫使用者名稱
Password 為資料庫密碼
Owner 亦為 UserID
' DAO 物件 DataBase 類別建立方式:
' 1. Early Binding 的方式
' 設定引用項目
' Microsoft DAO 3.5 Object Library 或 Microsoft DAO 3.6 Object Library
Dim db As DAO.Database
Set db = DBEngine.Workspaces(0).OpenDatabase("MDB路徑+檔案", False, False)
' 2. Late Binding 的方式 , 透過 CreateObject (建構) 函數 將物件個體化
Dim dbe As Object , db As Object
' 建立 DAO 3.5 或 3.6 版本的 DBEngine
Set dbe = CreateObject("DAO.DBEngine.35") ' 建立 DAO3.5 DBengine 物件
' 或 Set dbe = CreateObject("DAO.DBEngine.36") 建立 DAO3.6 DBengine 物件
Set db = dbe.Workspaces(0).OpenDatabase("MDB路徑+檔案", False, False)