【问题标题】:how to connect to multiple access databases at one time如何一次连接到多个访问数据库
【发布时间】:2009-07-31 23:35:51
【问题描述】:

谁能告诉我如何同时连接两个数据库?我需要为我们正在进行的转换获取两组数据。

db1db2 是名称。我以为我会这样做:

select * 
from db1.table1 as table1
  inner join db2.table2 as table2 on table2.column = table1.table1.column

任何帮助都会很棒。

谢谢

【问题讨论】:

  • 谢谢大家。我以前很怕那个。我想我将不得不使用脚本语言进行这种转换。
  • 来吧,投票并接受你喜欢的答案:)
  • 哇,耐莉。建立一个链接表是解决这个问题的方法。很容易做到,然后你就可以加入了。
  • 您认为为什么需要使用脚本语言?

标签: ms-access


【解决方案1】:

根据问题的标题,听起来这些是 Microsoft Access 数据库,但问题本身并未提及这些是 Access 还是其他数据库。如果这些是 Access 并且您有权修改它们,那么这是一个选项。如果没有,那么这将没有任何帮助。

如果您使用的是 Microsoft Access,为什么不在其中一个中创建一个linked table?然后你可以在一个数据库中同时查询它们...

【讨论】:

  • 听起来他只是想从这些数据库中提取数据,而不是修改它们。
【解决方案2】:

Access 支持这种查询:

SELECT a.d, b.*
  FROM mylocalTable AS a, 
       myLocalTable AS b IN "C:\mydir\mysubdir\myext.mdb" 
 WHERE a.id = b.id;

替代等效语法:

SELECT a.d, b.*
  FROM mylocalTable AS a 
       INNER JOIN 
          [DATABASE=C:\mydir\mysubdir\myext.mdb;].myLocalTable AS b 
          ON a.id = b.id;

在上面的例子中,外部 MDB 的路径遵循 8.3 文件命名风格。
执行 dir /x 以查找目录和文件的名称以查看其外观。

例如c:\program files\mydatabase.mdb 可能看起来像 c:\progra~1\mydata~1.mdb。

编辑:链接表是处理这个问题的更好方法。

【讨论】:

  • Access 在 SQL 语句的 IN 子句中对长文件名的支持非常好。所以\\servername\Share Name\这是一个长文件名。MDB就好了。
  • 链接表不一定总是更好。更多的是权衡适合您的情况。
  • @Tony:我尝试在文件/目录名称中提供带有长路径和空格的文件名,并且 SQL 给出了错误“FROM 子句中的错误”。我不确定它为什么这样做。
  • @Tony:Linked Table 什么时候不可行?
  • 啊,你必须把长文件名放在单引号里。如果您在一段时间内以编程方式执行这些操作,您可能不想执行表的链接和取消链接,而只使用查询。如果是一次性情况,那么链接会更容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
  • 2016-02-18
  • 2010-09-12
  • 1970-01-01
  • 2013-12-26
相关资源
最近更新 更多