将uid和pwd文件调用到系统dsn的访问db中

问题描述 投票:0回答:1

我有5个不同的MS Access 2013 db文件,它们连接到系统dsn文件(链接服务器)dsn的机器/系统基于Oracle,但我遇到的问题是1我的密码未加密,必须每90天更改一次,并且2我必须打开每个文件,并在更改密码后多次保存密码。

我想拥有一个存储证书的安全位置,并将其传递给访问权限,以便其他用户看不到它们,并且不必将我的密码保存在每个访问文件中并重新链接。

我已经用Google搜索了2天以上,但是除了查看仍然无法解决问题的连接字符串外,找不到其他东西。我需要解决什么问题?

对不起,我没有代码,因为我只使用ms access中的链接表向导。

@@ Albert D我无法使您的代码正常工作,但是我完成了以下操作,该操作解决了表上的问题,但没有解决传递查询的问题

[创建文件DSN,并将某些表链接到Access数据库。创建了一个Excel文件来存储我的用户名和密码,但是传递查询中的凭据仍然显示我被卡住了吗?

Option Compare Database

Function Connections()
On Error Resume Next
'delete query if exists
DoCmd.DeleteObject acQuery, "PTQ"
Err.Clear
On Error GoTo 0 '"on error" statement here

'GET EXCEL LOGIN DETAILS
Set xlsApp = CreateObject("Excel.Application")
Dim WkBk As Excel.WorkBook
Set WkBk = xlsApp.WorkBooks.Open(FileName:="C:\folderlocation\filename.xlsx")

Dim USERLIST As String
Dim PWDLIST As String

USERLIST = WkBk.Sheets(1).Range("A2").Value
PWDLIST = WkBk.Sheets(1).Range("B2").Value

If Not (xlsApp Is Nothing) Then xlsApp.Quit
'end excel stuff
Dim db As DAO.Database
Dim qdExtData As QueryDef
Dim strSQL As String
Set db = CurrentDb
'passthrough query statement
strSQL = "SELECT * FROM table"
Set qdExtData = db.CreateQueryDef("PTQ")

ServerName = "Server1"
qdExtData.Connect = "ODBC;DRIVER={Oracle in OraClient11g_home1};Server=" & ServerName & ";DBQ=Server1;UID=" & USERLIST & ";Pwd=" & PWDLIST & ""

qdExtData.SQL = strSQL
qdExtData.Close
db.Close
Set db = Nothing
End Function

然后我设置了一个名为AutoExec的运行代码宏

vba oracle ms-access dsn
1个回答
1
投票

好吧,先来吗?我会避免(不使用)系统或用户DSN。原因很多,但是这些类型的DSN不仅需要外部参考,而且经常需要提升的注册表权限。更糟糕的是,您的密码将以纯文本显示。

© www.soinside.com 2019 - 2024. All rights reserved.