2009-10-19 75 views
1

使用SQL Server 2000和Access 2003如何为sql和访问数据库选择查询?

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 

所以如何对访问和sql数据库进行查询。

我想在只选择查询。不是一个SQL数据库。

需要查询帮助?

+0

Gropal,我同意下面的评论重新创建一个表中的MS访问,链接到SQL服务器表。如果Person表很大,那么确保在person.id上有一个索引。否则,每次查询运行时,ms-access都将在网络上执行全表扫描。 – heferav 2009-10-19 11:14:00

回答

1

你可以在Access中设置一个链接表到你的SQL Server,并且在Access版本中的操作说明稍有不同。查看帮助文件中的“链接表”,或者如果您有Access 2007,请转至here

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

1

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

0

您应该添加MSACCESS分贝为远程服务器。 然后你可以这样做加入

+0

对不起,我错过了那部分说你想在ms访问中进行查询。在这种情况下,请按照其他答案中的建议使用链接表 – 2009-10-19 10:31:13

3

虽然你可以(可能的话,应该 - 为什么)使用一个链接表,还有如以往一般,皮肤猫不止一种方法。以下是另一种方法:将连接详细信息放入查询测试中像

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; 
+0

您能否准确解释何时您认为该方法有用?对于绝大多数情况,链接表更容易管理。我认为将连接字符串埋在SQL字符串中是非常有问题的,不管是作为保存的QueryDefs存储,还是作为Recordsources/Rowsources存储在表单/报告中,还是存储在VBA代码中。将链接表作为一个可以像存在于Access数据库中那样使用的对象,这样做会更清晰。 – 2009-10-20 03:04:44

+0

我不行。您可能是正确的:我认为将SQL代码隐藏在字符串中是否存在问题,无论是作为Recordsources/Rowsources存储在表单/报告中还是存储在VBA代码中;它更清洁(其中包括代码维护等),将SQL代码作为一个对象(VIEW或PROCEDURE),可用于整个应用程序和任何其他将使用数据库的应用程序(如果数据库成功,将会发生*在企业中)。请编辑以添加您喜欢链接表的原因:) – onedaywhen 2009-10-20 06:13:46

+0

我在哪里运行这种查询? – 0014 2016-10-06 20:06:08