您可以使用 Access 做為前端應用程式,然後連結至後端伺服器的數據表,例如 SQL Server。 根據預設,大部分查詢會在 Access ACE 資料庫引擎中本機執行。 在某些情況下,Access 會根據 SQL 語法和其他因素,在 SQL Server 上遠端執行查詢。 如需詳細資訊,請參閱 重新探索的 JET 和 ODBC 白皮書中的「JET 資料庫引擎版本 3.0:ODBC 連線能力」。
不過,通常您會想要在資料庫伺服器上明確地執行查詢。 這麼做有助於提升效能:資料庫伺服器的處理能力比桌面電腦更大,而且您可以透過網路連線傳回較小的數據子集。 若要在資料庫伺服器上執行查詢,請使用 傳遞查詢 ,即使用 ODBC 連線字串連線至 SQL Server 的 Transact SQL (TSQL) 語句。 例如,您可以傳遞 SELECT 語句,將數據傳回數據工作表、表單、報表或清單控制件、 (資料操作語言 (DML) 語句) 執行同等的動作查詢、呼叫儲存的程式,以及 () (資料定義語言 (DDL) 語句執行系統管理工作。
附註 傳遞查詢的結果是唯讀的。 若要直接編輯數據工作表或表單中的資料,請建立連結數據表至索引檢視。 如需詳細資訊,請參 閱建立索引檢視。
-
線上到伺服器資料庫。
如需連結至 SQL Server 的詳細資訊,請參閱 匯入或連結至 SQL Server 資料庫中的數據 和 連結至或匯入 Azure SQL Server 資料庫中的數據。
-
選取 [建立] > [查詢設計]。
-
如有需要,請關閉 [ 新增數據表 ] 對話框 (在Access中 顯示數據表 ]。
-
選取 [設計 >傳遞]。
Access 會隱藏查詢設計網格線,並顯示 [SQL 檢視]。
-
如果查詢屬性表沒有出現,請按 F4 來顯示它。
-
在屬性表上,按兩下 [ODBC Connect Str 屬性 ] 方塊,然後執行下列其中一項操作:
若要取得連線字串:
-
在導航窗格中,以滑鼠右鍵按兩下連結到所需數據源的數據表,然後選取 [鏈接的數據表管理員]。
-
在 [ 鏈接的數據表管理員 ] 對話框中,選取數據源的複選框,然後選取 [編輯]。
-
在 [ 編輯連結] 對話框中,複製 [連線 字串] 方塊 中的文字。
-
選 取 [組建 ] 。
-
依照提示建立包含連線字串資訊的 DSN 檔案。 如需詳細步驟,請參閱 匯入或連結至 SQL Server 資料庫中的數據 ,以及 從 Azure SQL Server 資料庫連結至或匯入數據。
建立 DSN 檔案連線之後,ODBC 連線字串會內部儲存在 Access 資料庫中。 取得該字串複本的訣竅如下:
-
使用您要的 ODBC 連線,在 [導航窗格] 中尋找連結的數據表名稱。
-
按 Ctrl+G。 以開啟 VBA [立即存取] 視窗。
-
輸入:下列程式代碼:
?CurrentDb.TableDefs("<table name>").Connect
但是> 步驟中的鏈接資料表名稱來取代 <數據表名稱。
-
將傳回的字串複製到 ODBC Connect Str 屬性。
-
-
在 [SQL 檢視] 中輸入查詢。
注意:Access SQL 與 SQL Server TSQL 之間有重要的差異,尤其是語法、函數名稱和函數自變數。 如需詳細資訊,請參閱比較 Access SQL 和 SQL Server TSQL。
祕訣 先在 SQL Server Management Studio 中建立 TSQL 查詢,然後將 SQL 複製並貼到 SQL 檢視中。 這可確保查詢具有正確的語法。 如果您沒有方便存取 SQL Server 資料庫的功能,請考慮在桌面上安裝 Microsoft SQL Server Express 版本 ,這個版本最多可支援 10 GB,而且可讓您輕鬆執行及檢查移轉作業。
-
考慮設定其他相關屬性:
-
傳回記錄 某些 SQL 語句會傳回記錄,例如 SELECT,有些則不會傳回,例如 UPDATE。 如果查詢傳回記錄,請將此屬性設為 Yes;如果查詢未傳回記錄,請將此屬性設為 No。
附註 傳遞查詢可以傳回多個結果集,但在數據工作表、窗體、報表或 recordset 變數中,只會使用第一個結果集。 若要擷取多個結果集,請使用 製作數據表查詢 ,如下列範例所示:
SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >
您必須使用星號 (*) ,因為每個結果集可能有不同的數據行。 每個結果集都會儲存在個別的數據表中,而數位會隨之附加到本機數據表名稱。 例如,如果傳回三組結果,數據表名稱會是:<本機數據表名稱>,<本機數據表名稱>1,<本機數據表名稱>2。
-
記錄訊息 指定是否要從 Access 郵件資料表中的 SQL 資料庫傳回郵件。 表格名稱的格式為用戶名稱 - nn,其中使用者名稱是目前使用者的登入名稱,而 nn 是從 00 開始的數位。
-
ODBC 逾時 指定執行查詢時發生逾時錯誤之前要等待的秒數。 預設值為 60 秒。 可能是因為網路流量或資料庫伺服器大量使用而導致延遲。
-
最大記錄 指定要傳回的記錄數目上限。 系統資源可能有限,或者您想要只用少量數據來測試結果。
-
-
當您完成輸入查詢時,選取 [ 設計 > 執行]。 您的查詢會傳送至資料庫伺服器進行處理。