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

VBA/DAO 代碼刷新 Access 鏈接 SQL Server 表連接屬性

     編輯:關於SqlServer

Access 前端鏈接 SQL Server 後端時,連接屬性(DSN/UID/PWD/Database)變更需批量刷新 TableDef。

通用刷新函數

Function RelinkSQLTables()
  Dim db As DAO.Database, td As DAO.TableDef
  Dim uid As String, pwd As String, dbName As String
  uid = "sa" : pwd = "abc" : dbName = "abcde"
  Set db = CurrentDb
  For Each td In db.TableDefs
    If td.Attributes = dbAttachedTable Then  ' 536870912
      td.Connect = "FILEDSN=d:\demo\steel.dsn;UID=" & uid & ";PWD=" & pwd & ";DATABASE=" & dbName & ";Network=DBMSSOCN"
      td.Attributes = dbAttachSavePWD  ' 持久化密碼
      td.RefreshLink
    End If
  Next
End Function

關鍵屬性解析

  • td.Attributes = dbAttachedTable:識別鏈接表(非本地表)
  • FILEDSN=...:文件 DSN 路徑,避免機器 DSN 依賴
  • Network=DBMSSOCN:指定 TCP/IP 網絡庫(SQL Server 專用)
  • dbAttachSavePWD:將密碼加密存入連接字符串,免用戶反覆輸入

微軟工程師補充

  • DSN 文件可包含服務器、數據庫、語言等預設值,Connect 字符串僅需覆蓋 UID/PWD/Database
  • 生產環境建議使用 Windows 集成認證(Trusted_Connection=Yes),移除 UID/PWD
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved