Access交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

资讯

公司动态
业界资讯

Access资讯

Excel资讯

Word资讯

PPT资讯

其它Office资讯

微软新闻

IT资讯

热门文章

  • Access2013与Ac..
  • ACCESS 用链接表方法..
  • ACCESS:跨数据库查询..
  • Access2003开发者..
  • Access 2013 中..
  • Office 2016新功..

最新文章

  • Office 2016新功..
  • Access2013与Ac..
  • Access 2013 中..
  • Access 2010的功..
  • Sql和Access操作数..
  • ACCESS 用链接表方法..

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 资讯 > 业界资讯 > Access资讯
Access资讯

ACCESS 用链接表方法链SQL SERVER

在 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 的表, 也可以试试更改链接. 我这里就算是抛砖引玉了




发布人:Grant-IT学院  
分享到:
点击次数:  更新时间:2006-11-21 22:33:27  【打印此页】  【关闭】
上一篇:如何通过代码判断一条记录是否被选择  下一篇:Web 2.0在10年内将影响企业



相关文章

  • • Office 2016新功能但Access变化不大
  • • Access2013与Access2010的区别(Access2013删减的功能)
  • • Access 2013 中的新增功能
  • • Access 2010的功能和优点
  • • Sql和Access操作数据库结构的常用Sql
  • • ACCESS:跨数据库查询的SQL语句
  • • Access2003开发者扩展工具集概述

热门文章

  • [2006-09-15] ACCESS:跨数据库查询的SQL语句access数据库
  • [2009-01-06] Sql和Access操作数据库结构的常用Sqlaccess数据库
  • [2006-11-21] ACCESS 用链接表方法链SQL SERVERaccess数据库
  • [2003-12-07] Access2003开发者扩展工具集概述access数据库
  • [2016-02-03] Office 2016新功能但Access变化不大access数据库
  • [2013-06-26] Access2013与Access2010的区别(Access2013删减的功能)access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

Access交流网 版权所有 1999-2018 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2023  www.metinfo.cn