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%
最新内容
推荐内容