【问题标题】:How to pass username and password in external file into Excel Data Connection如何将外部文件中的用户名和密码传递到 Excel 数据连接
【发布时间】:2016-09-20 09:39:29
【问题描述】:

我有许多连接到我们的 Oracle 数据库的 excel 文件。 但是,连接详细信息以纯文本形式存储在连接详细信息中。 许多不同的人都可以访问这些 Excel。 我需要将密码和用户名从外部文件“传递”到连接中,以保护数据库凭据。 这些连接仅由我机器上的自动化作业使用。因此,其他用户不需要使用这些连接。 我的自动化作业使用 VBS 脚本,因此最好有一个解决方法。

VBS 中处理这个的部分是

Dim xlApp, xlBook
Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = False
Set xlBook = xlApp.Workbooks.Open("where workbook is located", False)
xlApp.Run "SampleMacroName()"


xlbook.Save
xlBook.Close False
set xlBook = Nothing

xlApp.Quit
Set xlApp = Nothing

DisplayAlerts=false

这里有没有参考密码和用户名? 理想情况下,我们正在寻找最简单的解决方案,所以如果我们可以在这段代码中硬编码它们,那将是可以接受的。

【问题讨论】:

    标签: database excel oracle vbscript


    【解决方案1】:

    我不得不删除我在数据库中的连接并使用 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)
    

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

    【讨论】:

      猜你喜欢
      • 2013-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      相关资源
      最近更新 更多