您可以使用 Access 作為前端應用程式,然後連結至後端伺服器 (例如 SQL Server) 中的資料表。 根據預設,大部分的查詢都會在本機執行 Access ACE 資料庫引擎。 在某些情況下,Access 可以在 SQL Server 上遠端執行查詢,視 SQL 語法和其他因素而定。 如需詳細資訊,請參閱 重新探索的 JET 和 ODBC 白皮書中的「JET 資料庫引擎 3.0 版:ODBC 連線」。
不過,您通常想要在資料庫伺服器上明確執行查詢。 您可以這樣做來協助改善效能:資料庫伺服器的處理能力比桌上型電腦更強,而且您可以透過網路連線傳回較小的資料子集。 若要在資料庫伺服器上執行查詢,請使用 Transact SQL (TSQL) 陳述式的 傳遞查詢 ,該陳述式會使用 ODBC 連接字串連線到 SQL Server。 例如,您可以傳遞 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但請 <步驟 a 中的鏈結表名稱取代表格名稱>。
-
將傳回的字串複製到 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;如果查詢未傳回記錄,請將此屬性設定為 [否]。
附註 傳遞查詢可以傳回多個結果集,但在資料工作表、表單、報表或記錄集變數中,只會使用第一個結果集。 若要擷取多個結果集,請使用 make 表格查詢 ,如下列範例所示:
SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >
您必須使用星號 (*) 因為每一個結果集可能有不同的直欄。 每一個結果集都會儲存在個別表格中,並據以將數字附加至本端表格名稱。 例如,如果傳回三個結果集,則表格名稱會是:<本端表格名稱>、<本端表格名稱>1,<本端表格名稱>2。
-
日誌訊息 指定是否要從 Access 訊息資料表中的 SQL 資料庫傳回訊息。 表格名稱的格式為 username – nn,其中 username 是目前使用者的登入名稱,nn 是從 00 開始的數字。
-
ODBC 逾時 指定執行查詢時發生逾時錯誤之前要等待的秒數。 預設值為 60 秒。 由於網路流量或資料庫伺服器的大量使用,可能會出現延遲。
-
最大記錄 指定要傳回的記錄數目上限。 您的系統資源可能有限,或者您只想使用少量資料來測試結果。
-
-
當您輸入完查詢時,請選取 [ 設計 ] > [ 執行]。 您的查詢會傳送至資料庫伺服器進行處理。