在查詢、表單和報表中使用參數

若您想在 Access 中設定會在每次執行時要求輸入的查詢,您可以建立參數查詢。

此外,您也可以建立表單以收集將用於限制由查詢、表單或報表所傳回之記錄的參數值。本文將說明如何使用表單來增強參數在查詢、表單和報表中的用途。

本文內容

概觀

在查詢中使用參數

指定參數資料類型

建立收集參數的表單

建立收集報表參數的表單

概觀

您可以在 Access 中使用參數查詢中的準則,來限制查詢傳回的記錄集。有時,您可能會發現參數查詢所提供的對話方塊並無法滿足您的目的。在這種情況下,您可以建立更符合您參數集合需求的表單。本文將說明如何建立能收集查詢和報表參數的表單。本文假設您已熟悉如何建立查詢及定義查詢中的參數。若要繼續閱讀本文,您應該至少熟悉建立選取查詢的方式。

本文將提供在查詢中使用參數的範例。本文並不提供指定準則的完整參考。

在查詢中使用參數

在查詢中使用參數就和建立使用準則的查詢一樣容易。您可以設計查詢來使它提示您輸入一或多項資訊,例如零件編號或是兩個日期。參數查詢會針對每個參數顯示個別的對話方塊,以提示您輸入該參數的值。

將參數新增至查詢

  1. 建立選取查詢,然後在 [設計檢視] 中開啟該查詢。

  2. 在您要套用參數之欄位的 [準則] 列中,輸入您要參數對話方塊顯示的文字,並以方括號括起來,例如:

    [Start Date]

    當您執行參數查詢時,對話方塊中出現的提示將不會包含方括號。

    您也可以搭配參數提示使用運算式,例如:

    Between [Start Date] And [End Date]

    附註: 系統會針對每個參數提示顯示個別的對話方塊。在第二個範例中,系統會針對 [Start Date] 和 [End Date] 分別顯示兩個對話方塊。

  3. 針對要加入參數的每個欄位重複步驟 2。

您可以使用前述步驟,將參數新增至下列任何一種查詢類型:選取、交叉資料表、新增、產生資料表,或更新。

您也可以按照下列步驟,將參數新增至聯集查詢:

  1. 在 [SQL 檢視] 中開啟聯集查詢。

  2. 新增 WHERE 子句,其中包含您要顯示參數提示的每個欄位。

    若 WHERE 子句已存在,請查看您要使用參數提示的欄位是否已經存在於該子句中,並在沒有的情況下新增它們。

  3. 請在 WHERE 子句中使用參數提示,而不要使用準則。

指定參數資料類型

您也可以指定參數應接受的資料類型。您可以為任何參數指定資料類型,但是請務必為數值、貨幣或日期/時間的資料指定資料類型。當您指定參數應接受的資料類型時,使用者就可在輸入錯誤的資料類型時,看見比較有用的錯誤訊息,例如,必須輸入貨幣資料而不是文字。

附註: 如果將參數設定為接受文字資料,則任何輸入項目都會解譯成文字,且不會顯示任何錯誤訊息。

若要指定查詢中參數的資料類型,請按照下列步驟進行:

  1. 在 [設計] 檢視中開啟查詢的情況下,於 [設計] 索引標籤的 [顯示/隱藏] 群組中,按一下 [參數]

  2. [查詢參數] 對話方塊的 [參數] 資料行中,為您想要指定資料類型的每一個參數鍵入提示。請務必確認每個參數都符合您在查詢設計格線的 [準則] 資料列中使用的提示。

  3. [資料類型] 資料行中,選取每個參數的資料類型。

建立收集參數的表單

雖然參數查詢具有會收集參數的內建對話方塊,但這類對話方塊只能提供基本功能。透過使用表單來收集參數,您將能取得下列功能:

  • 使用資料類型特定之控制項的能力,例如適用於日期的行事曆控制項。

  • 已收集參數的持續性,以便您將它們用於多個查詢。

  • 為參數集合提供下拉式方塊或清單方塊的能力,這可讓您從可用資料值清單中進行挑選。

  • 為其他功能提供控制項的能力,例如開啟或更新查詢。

以下影片將示範如何建立簡易表單來針對查詢收集參數,而不是使用通常與參數查詢相關聯的對話方塊。

您的瀏覽器不支援視訊。請安裝 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

建立收集報表參數的表單

雖然您有數種方式可以達到此目的,但本文只會示範其中一種主要使用巨集的方式。請按照下列步驟建立收集報表參數的表單。

步驟 1:建立可接受輸入的表單

步驟 2:建立程式碼模組來檢查是否已載入參數表單

步驟 3:建立控制表單和報表的巨集

步驟 4:將 [確定] 及 [取消] 命令按鈕新增至表單

步驟 5:使用表單資料作為查詢準則

步驟 6:將巨集指令新增至表單事件

步驟 7:進行測試

步驟 1:建立可接受輸入的表單

  1. 在 [建立] 索引標籤上,按一下 [表單] 群組中的 [表單設計]。

  2. 在 [設計] 檢視中,按 F4 以顯示屬性工作表,然後指定表單屬性,如下表所示。

    屬性

    設定

    標題

    輸入您要在表單標題列中顯示的名稱。

    預設檢視

    單一表單

    允許表單檢視

    允許資料工作表檢視

    允許樞紐分析表檢視

    允許樞紐分析圖檢視

    捲軸列

    皆否

    記錄選取器

    瀏覽按鈕

    框線樣式

    對話方塊

  3. 針對您要表單收集的每個參數,在 [設計] 索引標籤上,按一下 [控制項] 群組中的 [文字方塊]。

  4. 設定文字方塊的屬性,如下表所示。

    屬性

    設定

    名稱

    輸入能描述參數的名稱,例如 StartDate

    格式

    選擇能反映參數欄位之資料類型的格式。例如,針對日期欄位選取 [一般日期]。

  5. 儲存表單並為其命名,例如 frmCriteria

步驟 2:建立程式碼模組來檢查是否已載入參數表單

  1. 在 [建立] 索引標籤的 [巨集與程式碼] 群組中,按一下 [模組]。請注意,如果您使用的是 Access 2007,請改為在 [建立] 索引標籤的 [其他] 群組中,按一下 [模組]。

    Visual Basic 編輯器會隨即開啟新的模組。

  2. 在 Visual Basic 編輯器中輸入或貼上下列程式碼:

    Function IsLoaded(ByVal strFormName As String) As Boolean
    Dim oAccessObject As AccessObject
    Set oAccessObject = CurrentProject.AllForms(strFormName)
    If oAccessObject.IsLoaded Then
    If oAccessObject.CurrentView <> acCurViewDesign Then
    IsLoaded = True
    End If
    End If
    End Function
  3. 將模組以唯一名稱儲存,然後關閉 Visual Basic 編輯器。

步驟 3:建立控制表單和報表的巨集

透過使用 Access 巨集的子巨集功能,我們可以定義需在單一巨集中執行的所有步驟。我們會建立 Open Dialog、Close Dialog、OK 和 Cancel 這四個子巨集,以藉此控制此程序所需的各種工作。請使用以下螢幕擷取畫面作為指南,並建立含有下列子巨集和巨集指令的新巨集。請注意,在此範例中,參數表單的名稱為 frmCriteria。請根據您先前建立的表單名稱調整您的巨集。此外,請務必按一下 [設計] 索引標籤上的 [顯示所有巨集指令],以檢視所有的巨集指令。

含有四個子巨集和巨集指令之 Access 巨集的螢幕擷取畫面

儲存並關閉巨集。為巨集命名,例如 Date Range Macro

步驟 4:將 [確定] 及 [取消] 命令按鈕新增至表單

  1. 重新開啟您先前在 [設計] 檢視中建立的參數表單。

  2. 在 [設計] 索引標籤上的 [控制項] 群組中,確定未選取 [使用控制項精靈]。

  3. 在 [設計] 索引標籤上,按一下 [控制項] 群組中的 [按鈕]。

  4. 將游標置於表單上的文字方塊下方,然後拖曳以建立 [確定] 命令按紐。

  5. 如果沒有看見屬性工作表,請按 F4 鍵以顯示它。

  6. 設定 [確定] 按鈕的屬性,如下表所示。

    屬性

    設定

    名稱

    OK

    標題

    OK

    預設

    OnClick

    輸入巨集的名稱,例如 Date Range Macro.OK

  7. 建立 [取消] 命令按紐並設定其屬性,如下表所示。

    屬性

    設定

    名稱

    Cancel

    標題

    Cancel

    OnClick

    輸入巨集的名稱,例如 Date Range Macro.Cancel

  8. 儲存並關閉表單。

步驟 5:使用表單資料作為查詢準則

  1. 開啟您先前在 [設計] 檢視中建立的查詢。

  2. 輸入資料準則。使用 Forms 物件、表單的名稱,以及控制項的名稱。

    • 例如,在 Access 資料庫 (.accdb 或 .mdb) 中,針對名為 frmCriteria 的表單,您會在查詢中使用下列運算式來參照名為 Start Date 和 End Date 的控制項:

      Between [Forms]![frmCriteria]![Start Date] And [Forms]![frmCriteria]![End Date]

步驟 6:將巨集指令新增至表單事件

  1. 開啟您想在 [設計] 檢視中使用的報表。

  2. 如果沒有看見屬性工作表,請按 F4 鍵以顯示它。

  3. 請確定報表的 [記錄來源] 屬性是使用您先前所定義的參數查詢。

  4. 設定下表所示的兩個額外報表屬性。

    屬性

    設定

    OnOpen

    輸入巨集的名稱,例如 Date Range Macro.Open Dialog

    OnClose

    輸入巨集的名稱,例如 Date Range Macro.Close Dialog

    在報表的 Open 事件中,Access 會執行在 Date Range Macro 物件的 Open Dialog 子巨集中所定義的巨集指令。同樣地,當您關閉報表時,Access 會執行在 Date Range Macro 物件的 Close Dialog 子巨集中所定義的巨集指令。

  5. 儲存並關閉報表。

步驟 7:進行測試

您已建立所有 Access 物件,我們來試試看是否能正常運作。在 [報表檢視] 或 [列印預覽] 中開啟您的報表,並注意到在 Access 顯示報表之前,您的參數表單會在對話方塊模式中開啟。將所需的準則輸入您先前所建立的文字方塊中,然後按一下表單上的 [確定] 命令按鈕。Access 接著會隱藏該表單 ([可見] = 否) 並開啟僅含有符合您準則之資料的報表。這之所以能夠運作,是因為作為報表基礎的參數查詢能夠讀取位於隱藏表單上控制項中的值。當您關閉報表時,Access 也會關閉參數表單。

頁面頂端​​

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×