如何 link 在 VBA 中刷新 Table 的连接

How to link Connection to Refresh Table in VBA

我需要刷新 Excel 中的多个连接,而不在连接详细信息中存储密码。我正在使用 VBA 脚本来尝试这样做。我的代码是:

Sub Test() 
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset

' Connection string information for  DB as a variable (strCon)

strCon = "Driver={dummy}; " & _
"CONNECTSTRING=(DESCRIPTION=" & _
"(ADDRESS=(PROTOCOL=dummy)" & _
"(HOST=dummy)(PORT=dummy))" & _
"(CONNECT_DATA=(SERVICE_NAME = dummy))); uid=dummy; pwd=dummy;"

' Opens the above connection string.
con.Open (strCon)

ActiveWorkbook.RefreshAll
ActiveWorkbook.Save

End Sub

我的代码似乎打开了一个连接,并刷新了表格。但是,它仍然要求我输入密码。如何使用打开的连接刷新表格?

我不得不删除我在数据库中的连接,并使用 VBA 代码在一系列 SQL 查询中复制我的连接。我使用的代码的基础是:

'Declare variables'
    Set objMyConn = New ADODB.Connection
    Set objMyRecordset = New ADODB.Recordset
    Dim strSQL As String

'Open Connection'
    objMyConn.ConnectionString = "Driver={Microsoft ODBC for Oracle}; " & _
"CONNECTSTRING=(DESCRIPTION=" & _
"(ADDRESS=(PROTOCOL=***)" & _
"(HOST=*****)(PORT=****))" & _
"(CONNECT_DATA=(SERVICE_NAME = ****))); uid=****; pwd=*****;"
objMyConn.Open

'Set and Excecute SQL Command'
    strSQL = "Select distinct * From Temp_Final_Complaints_Report"

'Open Recordset'
    Set objMyRecordset.ActiveConnection = objMyConn
    objMyRecordset.Open strSQL

'Copy Data to Excel'
    Sheets("Complaints Report").Range("A2").CopyFromRecordset (objMyRecordset)

我现在可以用密码加密保存它的模块。