|
以下示範如何連結Microsoft SQL Server資料表,並將顯示確認方塊:
Dim CurrentDatabase As Database
Dim MyTableDef As TableDef
' Open the Microsoft Access database named Test.mdb.
Set CurrentDatabase = DBEngine.Workspaces(0).OpenDatabase _
("C:\Access\Data\Test.mdb")
' Create the TableDef object.
Set MyTableDef = CurrentDatabase.CreateTableDef("Attached SQL Server Table")
' Set the connection information.
MyTableDef.Connect = "ODBC;DATABASE=AR;UID=saWD=nimda;DSN=SQLTEST"
MyTableDef.SourceTableName = "Accounts"
' Append the TableDef object to create the link.
CurrentDatabase.TableDefs.Append MyTableDef
' Display a confirmation message.
MsgBox "Finished attaching " & MyTableDef.SourceTableName & ".", 0
開啟ODBC Data Source的資料表
以下範例是在無法連結外部資料時,教導您如何直接開啟Microsoft SQL Server資料表,而後開啟資料表上的 Recordset。
警告:相對於連結,直接開啟ODBC資料是非常沒有效率的並且嚴重拖垮效能,儘可能使用連結資料表。
Dim CurrentDatabase As Database
Dim MySet As Recordset
' Open the external SQL Server database named AP.
' ***NOTE THAT PERFORMANCE USING THE DATABASE WILL BE SLOW.***
Set CurrentDatabase = DBEngine.Workspaces(0).OpenDatabase _
("", False,False, "ODBC;DATABASE=AP;UID=MyIDWD=whocares;DSN=SQLSERV")
' Open a Recordset object on the Accounts table.
Set MySet = CurrentDatabase.OpenRecordset("Accounts")
初始化設定
當您安裝外部資料庫的驅動程式時,安裝程式會將相關輸入寫入數個次索引的登錄,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.0\Engines下。不論您想要存取那一個外部資料來源,都會增加驅動索引。只有當您使用其它驅動程式時,才會加入次索引。縱然安裝程式可為登錄檔案項目寫入無誤的預設值,如果您有特殊環境或偏好可能需要手動更改。如果您覺得需要自定相關設定,以下範例與表格將有所幫助。
注意:當您更改初始設定時,新設定生效前,必需離開並重新啟動Microsoft Access。
驅動
驅動登錄索引包括Jet資料庫引擎的初始化設定。此索引典型的項目設定如以下範例:
PageTimeout 5
LockedPageTimeout 5
LockRetry 20
CommitLockRetry 20
MaxBufferSize 512
ReadAheadPages 16
Microsoft Access使用以下項目:
Stt 描述
PageTimeout 在內部外取的資料尚未閱讀索定與過前之間的時間,以100毫秒表示,預設值為5(500毫秒或0.5秒)。
LockedpageTimeout 在內部外取的資料尚未閱讀索定與過前之間的時間,以100毫秒表示,預設值為5(500毫秒或0.5秒)。
LockRetry 重覆嘗試存取索定頁的次數,預設值為20。(注意,LockRetry與下面敘述的CommitLockRetry有關)。
CommitLockRetry Jet資料庫引擎嘗試在資料上取得索定以便移交改變予該筆資料,如果不能取得移交索定,則無法成功更新該資料。
MaxBufferSize Jet資料庫引擎內部快取大小,計算單位為千位元(K)。MaxBufferSize必需在18到4096(含)間,預設值為512。
ReadAheadPages 作循序掃描時,事先閱讀的頁數。預設值為16
在引擎索引下是各個可安裝的ISAM驅動程式的次索引。各個次索引均包含對外部ISAM資料庫的驅動程式路徑。這些輸入的典型設定如以下範例:
Paradox C:\Windows\System\Mspdox35.dll
Xbase C:\ Windows\System\Msxbse35.dll
(With Xbase including dBASE and FoxPro)
每個次索引下的引擎索引均含有指向外部ISAM資料庫驅動程式的路徑。如果輸入錯誤或是某個特定驅動程式的路徑不正確,您將會收到這樣的訊息“找不到可安裝的ISAM。
XBASE
XBASE次索引包括Msxbase35.dll驅動程式的初始化設定,用於對FoxPro與dBASE的外部存取。這些輸入的典型設定如以下範例:
NetworkAccess 01
PageTimeout 0x00000258 (600)
INFPath C:\DBASE\System
CollatingSequence Ascii
Deleted 01
Century 00
Date MDY
Mark 0x00000000 (0)
Exact 00
SupportsLongNames 00
Microsoft Access使用的Xbase設定如下表:
輸入 描述
NetworkAccess 檔案索定偏好的開關指示。如果NetworkAccess是關的,資料表開放個人存取,不論OpenDatabase與OpenRecordset的個人選項設定為何。預設值是開的。
PageTimeout 在內部外取的資料尚未閱讀索定與過前之間的時間,以100毫秒表示,預設值為600(60秒)。
INFPath 指向副檔名為inf的檔案資料夾。Jet資料庫引擎會先在含有資料表的資料夾內尋找inf檔。如果inf檔不在資料庫檔案夾內,Jet資料庫引擎會在INFPath內尋找。如果也沒有INFPath,便會在資料庫的資料夾內尋找任何索引檔案(.cdx或.mdx)。這項輸入沒有預設值。
CollatingSequence 以Microsoft Access建立或開啟的dBASE資料表的自動分 |
|