首页 > 解决方案 > 在同一位置链接后端密码保护的访问数据库

问题描述

我正在使用下面的代码将我的银行端数据库链接到前端。它可以正常工作,而无需在后端数据库上设置密码。如何将相同的代码与受密码保护的后端文件一起使用。注意:以下代码来自 [Stackoverflow question][1]

 [1]: https://stackoverflow.com/questions/3315306/how-can-a-relative-path-specify-a-linked-table-in-access-2007


    Private Sub Form_Load()
    Dim strOldConnect As String
    Dim strNewConnect As String
    Dim intSlashLoc As Integer
    Dim intEqualLoc As Integer

    Dim strConnect As String
    Dim strFile As String
    Dim strCurrentPath As String

    strCurrentPath = CurrentProject.path

    Dim tblDef As TableDef
    Dim tblPrp As Property

    For Each tblDef In CurrentDb.TableDefs
    Debug.Print tblDef.Name
    If tblDef.Connect & "." <> "." Then

        strOldConnect = tblDef.Connect
        intEqualLoc = InStr(1, strOldConnect, "=", vbTextCompare)
        strConnect = Left(strOldConnect, intEqualLoc)
        intSlashLoc = InStrRev(strOldConnect, "\", -1, vbTextCompare)
        strFile = Right(strOldConnect, Len(strOldConnect) - intSlashLoc)
        strNewConnect = strConnect & strCurrentPath & "\" & strFile

        tblDef.Connect = strNewConnect
        tblDef.RefreshLink
    End If

    Next tblDef
    End Sub

标签: ms-accessvba

解决方案


Access 的整个连接字符串Microsoft ACE OLEDB 12.0是:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb; Jet OLEDB:Database Password=MyDbPassword; 

请参阅此链接以获取参考https://www.connectionstrings.com/access/

在你的情况下,这将是诀窍:

tblDef.Connect = "PWD=" & MyPassword & ";DATABASE=" & YourDatabasePath

推荐阅读