会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > 其它(Other) > 其它技巧 > 正文

ACCESS 用链接表方法链SQL SERVER

时间:2006-11-21 22:33 来源:IT学院 作者:Grant 阅读:
在 Access 2000 中使用 ADOX 来创建链接表的体会
如果要以 SQL Server 作为后端, 可在 Access 中链接 SQL Server 的表. 但是, 若想要在应用中动态地改变这一链接 (有时的确需要这么做), 就必须用 VBA 来创建和/或更改链接表. 我查阅了 MSDN, 但只发现用 ADOX 或 DAO 来创建表的内容, 而没有涉及到链接表, 所以一直解决不了.

最近看了一本书, "Access 2002 开发实用全书", 是电子工业出版社出版的. 其中的 7.4 节 "用 ADOX 定义数据" 恰好讲到了如何用 ADOX 创建链接表, 虽然其后端仍然是 Access 表, 还是有很大的参考价值. 然而按照书上的代码, 却不能得到预期的结果, 被创建的表没能正确地链接, 也打不开. 书上的代码如下:
-----------------------------------------------------------------------
'首先引用 Microsoft ADO Ext. 2.5 For DDL and Security 库, 然后就能使用
'ADOX 类库了.

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 = "供应商_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") = "供应商"

cat.Tables.Append tbl

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

程序可以运行, 不会出错, 但创建的表没有正确地链接, 也无法打开. 究竟是什么原因呢? 经过整整一晚的"研究", 终于找到了答案, 原来漏掉了最关键的一行代码!

我在调试窗口中测试了从 tbl.Properties(0).name 直到 tbl.Properties(9).name 的所有值, 发现 Jet OLEDB:Link Datasource 是 4, Jet OLEDB:Remote Table Name 是 6, 这两个属性我都设对了. Jet OLEDB:Provider String 是 5, 这个属性是针对象 SQL Server 这样的远程数据库的, 如果后端是 Access 就用不着. Jet OLEDB:Create Link 是 8, 我觉得这个是最关键的, 马上测试了 tbl.Properties(8).Value, 发现是 False, 心中立刻升腾起莫名的喜悦!

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

......

有兴趣的朋友可以试一下链接 SQL Server 的表, 也可以试试更改链接. 我这里就算是抛砖引玉了




(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: