| 网站首页 | 新闻 | 新书 | 专家 | 技巧 | 源码作品 | 工具/资源 | 商城 | 风采 | 留言 | 论坛 | 网址 | 承接 | 
您现在的位置: Access/Office中国 >> 技巧 >> Sql ServerOracle其它 >> 文章正文 用户登录 新用户注册
ACCESS 用链接表方法链SQL SERVER         ★★★
ACCESS 用链接表方法链SQL SERVER
作者:Grant 文章来源:IT学院 点击数: 本日:{$DayHits} 更新时间:2006-11-21 22:33:27
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 的表, 也可以试试更改链接. 我这里就算是抛砖引玉了




文章录入:tm    责任编辑:tm 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    使用代码刷新ODBC链接表
    批量去除链接表名前的"D
    使用代码刷新链接表
    刷新链接表的函数
    批量去除链接表名前的"D
    启动命令行选项
    以指定工作组文件启动MD
    如何用代碼給一個已經創
    重新定位链接表二步走
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)