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