返回列表 上一主題 發帖

連接其他資料庫時,如何可以不用再輸入帳密

我無法下載附件,你可以試試以下的方法

Const HOST$ = "xxx.xxx.xxx.xxx"  ' Server hosting the Oracle db
Const DBNAME$ = "主機名稱"
Const ORACLE_USER_NAME$ = "使用者名稱"
Const ORACLE_PASSWORD$ = "密碼"

連接時的語法
            ' Connect DB
            strConOracle = "Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)"
            strConOracle = strConOracle & "(HOST=" & HOST & ")(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=" & DBNAME
            strConOracle = strConOracle & "))); uid=" & ORACLE_USER_NAME & " ;pwd=" & ORACLE_PASSWORD & ";"
            Set oConOracle = CreateObject("ADODB.Connection")
            Set oRsOracle = CreateObject("ADODB.RecordSet")
            oConOracle.Open strConOracle

TOP

理論上是降子改
Const HOST$ = "100.00.000.000"
Const DBNAME$ = "abcde"
Const ORACLE_USER_NAME$ = "fghij"
Const ORACLE_PASSWORD$ = "12345"

連接資料庫時:
            ' Connect DB
            strConOracle = "Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)"
            strConOracle = strConOracle & "(HOST=" & HOST & ")(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=" & DBNAME
            strConOracle = strConOracle & "))); uid=" & ORACLE_USER_NAME & " ;pwd=" & ORACLE_PASSWORD & ";"
            Set oConOracle = CreateObject("ADODB.Connection")
            Set oRsOracle = CreateObject("ADODB.RecordSet")
            oConOracle.Open strConOracle
                    
            Set oRsOracle = oConOracle.Execute(My_SQL) 'My_SQL請自行定義你的sql
            
            For I = 1 To oRsOracle.Fields.Count
            
                Sheets("TEST").Cells(1, I).Value = oRsOracle.Fields(I - 1).Name
            
            Next I
            
            Do While Not oRsOracle.EOF
            
                Sheets("TEST").Cells(2, 1).CopyFromRecordset oRsOracle
            
            Loop

TOP

提醒你一下,我這個連接的資料庫是Oracle的方式,
若你連接的資料庫是access或SQL Server,那寫法可能要有所變更,
例如用連接access則要改成

連接資料庫時:
' Connect DB
Dim My_con As New ADODB.Connection
Dim My_set As ADODB.Recordset

My_FileName = "aaa.mdb" '請自行輸入你access的檔案名稱
My_con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & My_FileName & ";"
My_SQL = "select * from test_table" 'My_SQL請自行定義你的sqlㄝ,例如:My_SQL= "select * from XXXX(此為你的資料表名稱)
Set My_set = My_con.Execute(My_SQL)            
For I = 1 To My_set.Fields.Count
   Cells(1, I).Value = My_set.Fields(I - 1).Name
Next I
            
Do While Not My_set.EOF
   Cells(2, 1).CopyFromRecordset My_set
Loop

TOP

忘記提醒要設定引用項目
Microsoft ActiveX Data Object 2.0 Library
記得要勾喔

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題