首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Access VBA 使用 DSN 重新連結 SQL Server 連結資料表

     編輯:關於SqlServer

在 Access 應用程式中,若需將現有的連結資料表重新指向 SQL Server,可撰寫 VBA 函式 relink() 透過檔案 DSN 連接字串批次更新所有連結資料表的連線資訊。以下提供完整程式碼與關鍵參數說明。

完整 VBA 程式碼

Function relink()
    Dim db As Database
    Dim tbl As TableDef
    Dim a As String
    Dim b As String
    Dim d As String

    a = "sa"      ' 資料庫用戶
    b = "abc"     ' 資料庫密碼
    d = "abcde"   ' 資料庫名稱

    Set db = CurrentDb

    For Each tbl In db.TableDefs
        If tbl.Attributes = 536870912 Then   ' 判斷是否為連結資料表
            tbl.Connect = "FILEDSN=d:\demo\steel.dsn;UID=" & a & ";PWD=" & b & ";WSID=;DATABASE=" & d & ";Network=DBMSSOCN"
            tbl.Attributes = dbAttachSavePWD
            tbl.RefreshLink
        End If
    Next
End Function

參數詳細說明(參考微軟工程師 Billy Yao 解答)

  • FILEDSN:指定檔案 DSN 的完整路徑(如 d:\demo\steel.dsn)。
  • UID:登入 SQL Server 的用戶帳號,由變數 a 提供。
  • PWD:對應的密碼,由變數 b 提供。
  • WSID:工作站識別碼(Workstation ID),此處留空。
  • DATABASE:目標資料庫名稱,由變數 d 提供。
  • Network=DBMSSOCN:指定使用 TCP/IP 網路庫進行通訊。
  • dbAttachSavePWD:將密碼儲存於連結資料表定義中,避免每次重新連結需重新輸入。

執行此函式後,所有屬性為 536870912(連結資料表)的 TableDef 將自動更新連線字串並重新整理連結,即可無縫切換至指定的 SQL Server 執行個體與資料庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved