會(huì)員登錄 - 用戶(hù)注冊(cè) - 網(wǎng)站地圖 Office中國(guó)(office-cn.net),專(zhuān)業(yè)Office論壇
當(dāng)前位置:主頁(yè) > 技巧 > 其它(Other) > 其它技巧 > 正文

ACCESS 用鏈接表方法鏈SQL SERVER

時(shí)間:2006-11-21 22:33 來(lái)源:IT學(xué)院 作者:Grant 閱讀:
在 Access 2000 中使用 ADOX 來(lái)創(chuàng)建鏈接表的體會(huì)
如果要以 SQL Server 作為后端, 可在 Access 中鏈接 SQL Server 的表. 但是, 若想要在應(yīng)用中動(dòng)態(tài)地改變這一鏈接 (有時(shí)的確需要這么做), 就必須用 VBA 來(lái)創(chuàng)建和/或更改鏈接表. 我查閱了 MSDN, 但只發(fā)現(xiàn)用 ADOX 或 DAO 來(lái)創(chuàng)建表的內(nèi)容, 而沒(méi)有涉及到鏈接表, 所以一直解決不了.

最近看了一本書(shū), "Access 2002 開(kāi)發(fā)實(shí)用全書(shū)", 是電子工業(yè)出版社出版的. 其中的 7.4 節(jié) "用 ADOX 定義數(shù)據(jù)" 恰好講到了如何用 ADOX 創(chuàng)建鏈接表, 雖然其后端仍然是 Access 表, 還是有很大的參考價(jià)值. 然而按照書(shū)上的代碼, 卻不能得到預(yù)期的結(jié)果, 被創(chuàng)建的表沒(méi)能正確地鏈接, 也打不開(kāi). 書(shū)上的代碼如下:
-----------------------------------------------------------------------
'首先引用 Microsoft ADO Ext. 2.5 For DDL and Security 庫(kù), 然后就能使用
'ADOX 類(lèi)庫(kù)了.

Option Compare Database
Option Explicit

sub CreateLinkTable()
Dim cat As ADOX.Catalog
Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection
Dim tbl As ADOX.Table
Set tbl = New ADOX.Table
tbl.Name = "供應(yīng)商_Linked"
Set tbl.ParentCatalog = cat

tbl.Properties("Jet OLEDB:Link Datasource") = "C:\Program " & _ "Files\Microsoft Office\Office\Samples\Northwind.mdb"
tbl.Properties("Jet OLEDB:Remote Table Name") = "供應(yīng)商"

cat.Tables.Append tbl

Set tbl = Nothing
Set cat = Nothing
End Sub
-----------------------------------------------------------------------

程序可以運(yùn)行, 不會(huì)出錯(cuò), 但創(chuàng)建的表沒(méi)有正確地鏈接, 也無(wú)法打開(kāi). 究竟是什么原因呢? 經(jīng)過(guò)整整一晚的"研究", 終于找到了答案, 原來(lái)漏掉了最關(guān)鍵的一行代碼!

我在調(diào)試窗口中測(cè)試了從 tbl.Properties(0).name 直到 tbl.Properties(9).name 的所有值, 發(fā)現(xiàn) Jet OLEDB:Link Datasource 是 4, Jet OLEDB:Remote Table Name 是 6, 這兩個(gè)屬性我都設(shè)對(duì)了. Jet OLEDB:Provider String 是 5, 這個(gè)屬性是針對(duì)象 SQL Server 這樣的遠(yuǎn)程數(shù)據(jù)庫(kù)的, 如果后端是 Access 就用不著. Jet OLEDB:Create Link 是 8, 我覺(jué)得這個(gè)是最關(guān)鍵的, 馬上測(cè)試了 tbl.Properties(8).Value, 發(fā)現(xiàn)是 False, 心中立刻升騰起莫名的喜悅!

我往程序里添加了一行代碼:
tbl.Properties(8) = "True"

......

有興趣的朋友可以試一下鏈接 SQL Server 的表, 也可以試試更改鏈接. 我這里就算是拋磚引玉了




(責(zé)任編輯:admin)

頂一下
(0)
0%
踩一下
(0)
0%
推薦內(nèi)容
發(fā)表評(píng)論
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
評(píng)價(jià):