建立傳遞查詢

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

通常,不過,您要明確地在資料庫伺服器上執行查詢。 您執行此項目以改善效能: 資料庫伺服器擁有更大的處理電源比傳統型電腦,您可以繼續較小的子集資料透過網路連線。 若要在資料庫伺服器上執行查詢,請使用傳遞查詢這是連結至 SQL Server 使用 ODBC 連線字串的交易 SQL (SQL) 陳述式。 例如,您可以將傳遞資料傳回至資料工作表、 表單和報表的 SELECT 陳述式或清單控制項,執行巨集指令查詢 (資料操作語言 (DML) 陳述式),等同於呼叫預存程序,並執行系統管理工作 (資料定義語言 (DDL) 陳述式)。

附註    傳遞查詢的結果為唯讀狀態。 若要直接編輯 [資料工作表或表單中的資料,建立連結的資料表已編製索引的檢視。 如需詳細資訊,請參閱建立編製索引的檢視

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

    如需詳細了連結至 SQL Server 的詳細資訊,請參閱匯入或連結至 SQL Server 資料庫中的資料連結至] 或 [從 Azure SQL Server 資料庫匯入資料

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

  3. 關閉 [顯示資料表] 對話方塊。

  4. 選取設計>傳遞

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

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

  6. 在屬性工作表中,按一下 [ ODBC 連線 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

      但取代 <table name> 步驟中的連結的資料表名稱。

    4. 複製到 [ ODBC 連線 Str屬性傳回的字串。

  7. SQL 檢視] 中,輸入您的查詢。

    附註   有重要差異 Access SQL 和 SQL Server TSQL,特別是使用語法、 函數名稱和函式引數。 如需詳細資訊,請參閱比較 Access SQL 與 SQL Server TSQL

    祕訣    首先,建立 SQL Server Management Studio 中的 TSQL 查詢,然後複製並將 SQL 貼入SQL 檢視]。 這可確保查詢具有正確的語法。 如果您沒有安裝 SQL Server 資料庫中的方便存取,請考慮安裝Microsoft SQL Server Express edition桌面上支援最多 10 GB,並可免費更輕鬆地透過執行,並檢查您的移轉。

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

    • 傳回的記錄     某些 SQL 陳述式傳回記錄,例如選取,而有些則不,例如更新。 如果查詢傳回的記錄,將此屬性設為 [ ;如果查詢無法傳回記錄,請,設定此屬性為 [否]

      附註    傳遞查詢可以傳回多個結果集,但在資料工作表、 表單、 報表或 recordset 變數,用於第一個結果集。 若要擷取多個結果集,請使用產生資料表查詢如下列範例所示:

      SELECT <pass-through query name>.*
      INTO <local table name>
      FROM < pass-through query name >

      您必須使用星號 (*),因為每個結果集可能會有不同的欄。 每個結果集會儲存在不同的資料表,而數字會據此附加的本機資料表名稱。 例如,如果傳回三個結果集,就是資料表名稱: <local 表格 name>、 <local 表格 name>1、 <local 表格 name>2。

    • 記錄檔的郵件    指定是否要回收郵件 Access 資料表中的 SQL 資料庫的訊息。 資料表名稱的格式,使用者名稱-nn,其中的使用者名稱是登入名稱目前的使用者,而 nn 是 00 開始的數字。

    • ODBC 逾時    指定要執行查詢時,就會發生逾時錯誤之前等待秒的數。 預設值為 60 秒。 可能會因網路流量或大量使用的資料庫伺服器的延遲。

    • 最大值的記錄    指定要傳回記錄的數目上限。 您可能會限制系統資源,或您想要測試您剛剛少量的資料使用的結果。

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

附註:  本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。 讓這些內容對您有所幫助是我們的目的。 告訴我們這項資訊是否有幫助? 這裡是供您參考的英文文章

請參閱

TRANSACT-SQL 參考

使用 TRANSACT-SQL 查詢

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×