【问题标题】:How to make a select query for sql and access databases?如何对 sql 进行选择查询并访问数据库?
【发布时间】:2009-10-19 10:21:44
【问题描述】:

使用 SQL Server 2000 和 Access 2003

Access Database Name - History.mdb 
Access Table Name - Events

SQL Database Name - Star.mdf
SQL Table Name - Person

我想从人员表中获取字段,并通过使用内连接包含在事件表中

尝试查询

Select * from Events inner join person where events.id = person.id

那么如何查询access和sql数据库。

我只想在访问中进行选择查询。不是 sql 数据库。

需要查询帮助?

【问题讨论】:

  • Gropal,我同意下面的 cmets 在 ms-access 中重新创建一个链接到 SQL 服务器表的表。如果 Person 表很大,请确保您在 person.id 上有一个索引,否则每次查询运行时 ms-access 都会在网络上执行全表扫描。

标签: sql-server ms-access


【解决方案1】:

虽然您可以(可能,应该 -- 为什么?)使用链接表,但剥猫皮的方法不止一种。这是另一种方法:将连接详细信息放入查询测试中,例如像

SELECT * 
  FROM [ODBC;Driver={SQL Server};SERVER=MyServer;DATABASE=Star;UID=MyUsername;Pwd=MyPassword;].Person AS P1 
       INNER JOIN 
       [MS Access;DATABASE=C:\History;].[Events] AS E1
          ON S1.seq = S2.seq
 WHERE E1.id = P1.id;

【讨论】:

  • 您能否准确解释一下您认为该方法何时有用?对于绝大多数情况,链接表更容易管理。我认为将连接字符串隐藏在 SQL 字符串中确实存在问题,无论是作为保存的 QueryDefs 存储,还是作为表单/报告中的 Recordsources/Rowsources 存储,以及在 VBA 代码中。将链接表作为一个可以像在 Access 数据库中一样使用的对象更加简洁。
  • 我不能。您可能是对的:我认为将 SQL 代码隐藏在字符串中确实存在问题,无论是作为 Recordsources/Rowsources 存储在表单/报告中还是在 VBA 代码中;将 SQL 代码作为对象(VIEW 或 PROCEDURE)用于整个应用程序和任何其他将使用您的数据库的应用程序(这发生如果数据库在企业中成功)。请编辑以添加您喜欢链接表的原因:)
  • 我在哪里运行这种查询?
【解决方案2】:

您可以在 Access 中为您的 SQL Server 设置链接表,有关如何执行此操作的说明在 Access 版本中略有不同。查看“链接表”的帮助文件,如果您有 Access 2007,请转到 here

一旦您设置了链接表,您就可以在查询中访问 SQL Server 表。请注意,优化链接表连接需要一些工作。

【讨论】:

    【解决方案3】:

    您可以在 Access 中创建一个链接表,该表指向 SQL 中的表。其余的您可以在查询设计器中实现。

    【讨论】:

      【解决方案4】:

      您应该将 msaccess 数据库添加为远程服务器。 那你就可以加入了

      【讨论】:

      • 抱歉,我错过了说您希望查询在 ms 访问中进行的部分。在这种情况下,使用其他答案中建议的链接表
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      相关资源
      最近更新 更多