標題:
連接其他資料庫時,如何可以不用再輸入帳密
[打印本頁]
作者:
VANESSA
時間:
2012-2-20 14:46
標題:
連接其他資料庫時,如何可以不用再輸入帳密
此文件的數字是有連接到其他系統,每次要進入時都必須重新輸入帳號及密碼,能直接將帳號及密碼寫在excel裡嗎?開啟excel時就能自動連線了。
作者:
doom834
時間:
2012-2-20 15:32
我無法下載附件,你可以試試以下的方法
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
作者:
VANESSA
時間:
2012-2-20 16:02
回復
2#
doom834
謝謝您,但是我試沒有成功,如果我是連到這個資料庫http://100.00.000.000/HFMOfficeProvider/HFMOfficeProvider.aspx.
資料庫名稱:abcde
帳號:fghij
密碼:12345
那我該如何修改?
作者:
doom834
時間:
2012-2-20 17:00
理論上是降子改
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
作者:
VANESSA
時間:
2012-2-21 11:55
回復
4#
doom834
要吸收這個程式的意思,對我而言有點困難需要一些時間,先謝謝您的幫忙
作者:
doom834
時間:
2012-2-21 17:19
提醒你一下,我這個連接的資料庫是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
作者:
doom834
時間:
2012-2-21 17:27
忘記提醒要設定引用項目
Microsoft ActiveX Data Object 2.0 Library
記得要勾喔
作者:
VANESSA
時間:
2012-2-22 10:46
回復
7#
doom834
謝謝您,我的資料來源是HYPERION系統(這是ORACLE公司的應用軟體之一)我不知道這是用什麼寫的,所以我會再試試,謝謝
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)