使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

您可以使用 Access 做為前端應用程式,然後連結到後端伺服器中的數據表,例如 SQL Server。 根據預設,大部分查詢會在 Access ACE 資料庫引擎中本機執行。 在某些情況下,Access 會根據 SQL 語法及其他因素,在 SQL Server 遠端執行查詢。 如需詳細資訊,請參閱 重新探索的 JET 和 ODBC 白皮書中的「JET 資料庫引擎版本 3.0:ODBC 連線能力」。

不過,通常您會想要在資料庫伺服器上明確地執行查詢。 這麼做有助於提升效能:資料庫伺服器的處理能力比桌面電腦更大,而且您可以透過網路連線傳回較小的數據子集。 若要在資料庫伺服器上執行查詢,請使用連線至 SQL Server 的 transact SQL (TSQL) 語句,使用 ODBC 連接字串 傳遞查詢 。 例如,您可以傳遞 SELECT 語句,將數據傳回數據工作表、表單、報表或清單控制件、 (資料操作語言 (DML) 語句) 執行同等的動作查詢、呼叫儲存的程式,以及 () (資料定義語言 (DDL) 語句執行系統管理工作。

附註    傳遞查詢的結果是唯讀的。 若要直接編輯數據工作表或表單中的資料,請建立連結數據表至索引檢視。 如需詳細資訊,請參閱 Create 索引檢視]

  1. 線上到伺服器資料庫。

    如需有關連結至 SQL Server 的詳細資訊,請參閱匯入或連結至 SQL Server 資料庫中的數據連結至或匯入 Azure SQL Server 資料庫中的數據

  2. 選取 [建立] > [查詢設計]。

  3. 如有需要,請關閉 [ 新增資料表 ] 對話框 (在 Access 2013中顯示資料表 ] 。

  4. 選取 [設計 >傳遞]

    Access 會隱藏查詢設計網格線,並顯示 [SQL 檢視]

  5. 如果查詢屬性表沒有出現,請按 F4 來顯示它。

  6. 在屬性表上,按兩下 [ODBC Connect Str 屬性 ] 方塊,然後執行下列其中一項操作:

    若要取得 連接字串:

    1. 在導航窗格中,以滑鼠右鍵按兩下連結到所需數據源的數據表,然後選取 [鏈接的數據表管理員]

    2. 在 [ 鏈接的數據表管理員 ] 對話框中,選取數據源的複選框,然後選取 [編輯]

    3. 在 [ 編輯連結] 對話框中,複製 [連線 字串] 方塊 中的文字。

    1. 取 [組建 [建立器] 按鈕] 。

    2. 依照提示建立包含 連接字串 資訊的 DSN 檔案。 如需詳細步驟,請參閱匯入或連結至 SQL Server 資料庫中的數據,以及從 Azure SQL Server 資料庫連結至或匯入數據

    建立 DSN 檔案連線之後,ODBC 連接字串 會內部儲存在 Access 資料庫中。 取得該字串複本的訣竅如下:

    1. 使用您要的 ODBC 連線,在 [導航窗格] 中尋找連結的數據表名稱。

    2. 按 Ctrl+G。 以開啟 VBA [立即存取] 視窗。

    3. 輸入:下列程式代碼:

      ?CurrentDb.TableDefs("<table name>").Connect

      但是> 步驟中的鏈接資料表名稱來取代 <數據表名稱。

    4. 將傳回的字串複製到 ODBC Connect Str 屬性。

  7. [SQL 檢視] 中輸入查詢。

    附註   Access SQL 與 SQL Server TSQL 之間有重要的差異,尤其是語法、函數名稱和函數自變數。 如需詳細資訊,請參閱比較 Access SQL 和 SQL Server TSQL

    祕訣    先在 SQL Server Management Studio 中建立 TSQL 查詢,然後將 SQL 複製並貼到 [SQL 檢視]。 這可確保查詢具有正確的語法。 如果您不方便存取 SQL Server 資料庫,請考慮在桌面上安裝可支持高達 10 GB 的 Microsoft SQL Server Express 版本,這是一種可執行和檢查移轉的免費且更輕鬆的方式。

  8. 考慮設定其他相關屬性:

    • 傳回記錄     某些 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 秒。 可能是因為網路流量或資料庫伺服器大量使用而導致延遲。

    • 最大記錄    指定要傳回的記錄數目上限。 系統資源可能有限,或者您想要只用少量數據來測試結果。

  9. 當您完成輸入查詢時,選取 [ 設計 > 執行]。 您的查詢會傳送至資料庫伺服器進行處理。

另請參閱

Transact-SQL Reference

使用 Transact-SQL 查詢

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×