在用MDB與SQL SEVER2000連結時,有時需要重新整理連結資料表,通過以下代碼可以達到目的,此主題的解決參考了網友cwang的代碼,並得到了微軟工程師Billy Yao 的熱心協助,在此致謝!
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的解答說明:
根據您的描述,我對您的問題解答如下:
1. DSN=gnts 中gnts是系統DSN的檔案名稱。
2. UID是使用者名稱,並且它的值由變數a的值決定。PWD是密碼,並且它的值由變數b的值決定。
3. WSID 是指工作站的ID號 (Workstation ID)。變數d的值表示資料庫的名稱。 Network=DBMSSOCN
指TCP/IP所使用的網路程式庫(Network Library)。
關於ODBC DSN Connection String的更多資訊,您可參見以下這些文章:
http://www.able-consulting.com/MDAC/ADO/Connection/ODBC_DSN.htm
http://support.microsoft.com/default.aspx?scid=kb;EN-US;260249