Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> ADO/DAO/ADO.NET  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1702180
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

如何用 VBA 新建链接表

作者:cg1  摘自:access911.net  :cg1  更新日期:2004-10-9  浏览人次:

 

问题:

如何用 VBA 新建链接表。
-----------------------------------------------
问题一:

有人看了我以前的文章

    如何使用ADOX/DAO刷新/更新/删除并重定义链接表 《ADO/DAO》
    http://access911.net/index.asp?u1=a&u2=74FAB51E

问我如何创建新的链接表,而不是刷新呢?


-------------------------------------------------------
问题二:

Access数据库能否用SQl语句或者编程的方法实现将另外一个Access
数据库的所有表都链接进来?
感谢各位给我的帮助,我想实现的方案是这样的
我有一个存放基础数据的基础数据库,另外有一个模板业务数据库
我使用文件copy的方式让用户可以创建多个业务数据库,但每个业
务数据库都要引用基础数据库中的数据,考虑到性能和用户使用方
便我希望能在代码中实现自动创建链接表。

 


回答:


Sub CreateLinkTable_DAO()
'记得引用 DAO
    Dim dbs As DAO.Database
    Dim tdl As DAO.TableDef

    Set dbs = CurrentDb
    Set tdl = dbs.CreateTableDef("employee_link")

    tdl.Connect = ";DATABASE=R:\my_documents\订单管理系统\db1.mdb"
    '有人要问我是如何得到 CONNECT 字串的,随便建立一个链接表,用以下代码就可以
    '显示 connect 字串,按需要改一下即可,很多情况都可以使用这种思路

    'Debug.Print dbsCurrent.TableDefs("employee1").Connect
    tdl.SourceTableName = "employee1"
    dbs.TableDefs.Append tdl
    dbs.Close
    Set dbs = Nothing
End Sub


Sub CreateLinkTable_ADOX_ErrorCode()
'注意,本函数是错误的,是不能运行的
    Dim tbl     As New ADOX.Table
    Dim catDB   As ADOX.Catalog
    Set catDB = New ADOX.Catalog
    catDB.ActiveConnection = CurrentProject.Connection
    tbl.Properties("Jet OLEDB:Create Link") = True
    '在上述这行执行后会得到如下错误:3265,在对应所需名称或序数的集合中,未找到项目。
    '由于 adodb.tbl.properties 没有 CREATE 方法,因此此方法无法使用

    tbl.Properties("Jet OLEDB:Remote Table Name") = "employee1"
    tbl.Properties("Jet OLEDB:Link Provider String") = ""
    tbl.Properties("Jet OLEDB:Link Datasource") = "R:\my_documents\订单管理系统\db1.mdb"
    tbl.Name = "ddd"
    catDB.Tables.Append tbl
End Sub


Sub CreateLinkTable_ADOX_ErrorCode()
    '正确代码如下
    Dim tbl     As New ADOX.Table
    Dim catDB   As ADOX.Catalog
    Set catDB = New ADOX.Catalog
    catDB.ActiveConnection = CurrentProject.Connection
    set tbl.ParentCatalog = catDB
    tbl.Name = "ddd"
    tbl.Properties("Jet OLEDB:Create Link") = True
    tbl.Properties("Jet OLEDB:Remote Table Name") = "employee1"
    tbl.Properties("Jet OLEDB:Link Provider String") = ""
    tbl.Properties("Jet OLEDB:Link Datasource") = "R:\my_documents\订单管理系统\db1.mdb"
    catDB.Tables.Append tbl
End Sub


另外,针对问题二,你可以在基表里面建立一个链接表,然后用刷新的代码重新刷新即可

 

 

 
相关文章
     没有手动相关文章
     如何用代码创建链接表链接到 SQL SERVER 并且保存密码?
     如何解决共享目录加访问密码后导致链接表出错问题?
     如何用adox新建数据库和表?如何创建有“打开密码”或者“用户名、密码”的数据库?
     如何链接有密码保护的数据库?如何链接打开加密的数据库?
     如何使用ADOX/DAO刷新/更新/删除并重定义链接表 
     如何用代码重新链接 ODBC 链接表?1
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利