2009-10-19 73 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