在查詢中使用查閱和多重值欄位

Applies To
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

在 Access 中,您可以建立可容納多個值 (最多 100) 值的多重值欄位。 您也可以建立查閱欄位,顯示繫結至其他資料來源中值的使用者易記值。 查詢查閱或多重值欄位時,有幾個獨特的考量。 如需詳細資訊,請參閱 建立或刪除多重值欄位建立或刪除查閱欄位

本文內容

在查詢中檢視查閱欄位的繫結值

根據預設,查閱欄位的顯示值會自動顯示在查詢資料工作表檢視中。 當您建立查詢時,可以覆寫此行為,以改為顯示繫結值。 在此範例中,假設您想要在「查詢」新英格蘭州名稱的 [總部] 資料表中查看查閱欄位的繫結值。

查閱欄位資料表

  1. [設計檢視] 中開啟查詢。

  2. 在此範例中,新增 HeadquartersNewEngland 資料表。
    這兩個資料表應該連接。

    查閱欄位結構描述

    如需詳細資訊,請參閱 聯結表格和查詢

  3. 將 a 欄位與 [查閱欄位] 一起拖曳到查詢設計格線。 在此範例中,新增 [City ] 和 [NEState ] 欄位。

  4. 按一下 [查閱欄位],然後在 [ 設計 ] 索引標籤的 [顯示/隱藏 ] 群組中,按一下 [屬性工作表]。 在此範例中,使用 NEState 欄位。

  5. 在屬性工作表中,選取 [ 查閱 ] 索引標籤,然後選取 [ 顯示控制項 ] 屬性中的 [ 文字方塊]。
    在查詢設計中顯示控制項屬性

結果 現在當您在 [資料工作表檢視] 中檢視查詢時,您會看到顯示值的對應繫結值。

查詢結果顯示繫結值頁面頂端

在查詢中使用查閱欄位的顯示值

當您建立查閱欄位時,會在繫結值與顯示值之間建立聯結。 雖然您無法直接在查詢中使用 [顯示] 值,但可以使用其他資料來源中的對應值。 在此範例中,假設您想要在查詢中使用 Headquarters 資料表中 [查閱欄位] 的顯示值 NEState 做為準則。

  1. [設計檢視] 中開啟查詢。

  2. 在此範例中,新增 [Headquarters ] 和 [NewEngland ] 資料表。
    這兩個資料表應該連接。 如需詳細資訊,請參閱 聯結表格和查詢

  3. 將您要使用的欄位拖曳到查詢方格。 在此範例中,將 City 從 Headquarters 資料表拖曳到第一欄,將 NEState 從 Headquarters 資料表拖曳到第二欄,並將 StateName 從 NewEngland 資料表拖曳到第三欄。

  4. 清除查詢方格中 StateName的顯示核取方塊。

  5. 在查詢方格的 [StateName] 底下,於 [準則] 資料列中輸入 Vermont

    顯示查閱欄位繫結值的查詢方格

    查詢準則是以 [StateName ] 資料行為基礎,該資料行當然與 [顯示] 值 NEState 相同,但不會顯示在 [資料工作表檢視] 中。

  6. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]

結果 只會顯示包含 佛蒙特州 的列。

查詢結果 頁首

在查詢中使用多重值欄位

當您在查詢中顯示多重值欄位時,可以顯示包含所有值的完整多重值欄位,並在一列上以逗號分隔,或將每個值都有個別列的平面化資料。 例如,假設您有一個 [問題] 資料表,其中包含每個問題的 [標題 ] 欄位,以及一個 [指派至 ] 多重值欄位,用於將問題指派給人員。

在一列顯示多重值欄位中的所有值

  1. [設計檢視] 中開啟查詢。
  2. 在此範例中,新增 [問題] 資料表。
  3. 將欄位拖曳到查詢設計格線。 在此範例中,拖曳 [標題 ] 欄位和 [AssignedTo ] 多重值欄位。
  4. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]

結果 正如您所料,一欄會顯示 [標題 ] 欄位,而第二欄則會顯示 [AssignedTo ] 多重值欄位:

多重值欄位:使用非展平化結果進行查詢 展平檢視) (以一列顯示多重值欄位的每個值

  1. [設計檢視] 中開啟查詢。
  2. 在此範例中,新增 [問題] 資料表。
  3. 將欄位您拖曳到查詢方格。 在此範例中,拖曳 [標題 ] 欄位和 [AssignedTo.Value ] 多重值欄位。
    格式 Fieldname<>。Value,將 Value 屬性附加為字串AssignedTo 欄位的值。
  4. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]

結果 資料將展平,以便重複 [標題 ] 欄位,且 [AssignedTo ] 多重值欄位中的每個值都會顯示在對應的列中:

多重值欄位查詢展平結果 頁首

將準則新增到查詢中的多重值欄位

在查詢方格中不同格線欄中放置相同的準則,對查詢結果有重大影響。

新增準則以在一列中顯示多重值欄位中的所有值

Access 會先建立結果集,然後新增準則。

  1. [設計檢視] 中開啟查詢。

  2. 在此範例中,新增 [問題] 資料表。

  3. 將欄位您拖曳到查詢方格。 在此範例中,拖曳 [標題 ] 欄位、[ AssignedTo ] 多重值欄位和 [AssignedTo.Value] 多重值欄位。

  4. 清除查詢方格中 AssignedTo.Value 的 [顯示] 核取方塊。

  5. 在查詢方格的 AssignedTo.Value 底下,在 [準則 ] 資料列中,輸入 “NOT ”David Hamilton“。

    查詢設計具有直線查閱欄位的格線

    查看 SQL 檢視會很有幫助:
    SELECT Title, AssignedTo FROM Issues WHERE NOT AssignedTo.Value = "David Hamilton";

  6. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]

結果 未指派給 David Hamilton 的三個問題會以預設值顯示。

多重值欄位的結果使用 <FieldName> 新增準則,以在展平檢視 (一列顯示多重值欄位中的每個值)

Access 會先建立展平的結果集,然後再新增準則。

  1. [設計檢視] 中開啟查詢。

  2. 在此範例中,新增 [問題] 資料表。

  3. 將欄位您拖曳到查詢方格。 在此範例中,拖曳 [標題 ] 欄位和 [AssignedTo.Value ] 多重值欄位。

  4. 在查詢方格的 AssignedTo.Value 底下,在 [準則 ] 列中,輸入 NOT “David Hamilton”。

    使用 的查詢設計格線。查閱欄位的值格式

    查看 SQL 檢視會很有幫助:
    SELECT Issues.Title, AssignedTo.Value FROM Issues WHERE NOT AssignedTo.Value = "David Hamilton"

  5. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]

結果 每個未指派給 David Hamilton 的問題都會以展平值顯示。

多重值欄位的結果使用 <Fieldname>。值頁面 頂端

在查詢的多重值欄位加上多個準則

有時候您需要在多重值欄位中搜尋多個值的相符項目。 例如,假設您想要查看 “Kelly Rollin” 和 “Lisa Miller” 同時出現在 AssignedTo 欄位值中的問題

  1. [設計檢視] 中開啟查詢。
  2. 在此範例中,新增 [問題] 資料表。
  3. 將欄位您拖曳到查詢方格。 在此範例中,拖曳 [標題 ] 欄位和 [AssignedTo ] 多重值欄位。
  4. 在查詢方格的 [AssignedTo] 底下的 [ 準則 ] 資料列中,輸入 “Kelly Rollin” 和 “Lisa Miller”。
  5. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]

結果 顯示分配給“Kelly Rollin”和“Lisa Miller”的這兩個問題。

顯示多重值欄位中 AND 用法的查詢結果

頁面頂端

在查詢中分組和計算多重值欄位

若要對儲存在多重值欄位中的值執行計算、群組和排序,請使用 <Fieldname>。值欄位。 如需群組查詢的詳細資訊,請參閱 使用查詢計算資料。

若要計算指派給每個人的問題數目

  1. [設計檢視] 中開啟查詢。
  2. 在此範例中,新增 [問題] 資料表。
  3. 將您要使用的欄位拖曳到查詢方格。 在此範例中,將 AssignedTo.Value 拖曳到第一欄,並將 [標題 ] 拖曳到第二欄。
  4. [設計] 索引標籤上,按一下 [顯示/隱藏] 群組中的 [合計]
    [ 合計 ] 資料列會顯示在查詢方格中。 [分組依據 ] 預設會顯示在查詢中每個欄位下的 [ 合計 ] 儲存格中。
  5. 在查詢方格中,按一下 [標題] 底下的 [ 合計 ] 列中的 [ 計數]。
  6. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]

結果 每人指派的問題計數會以展平檢視顯示。

計算指定給每個人之議題數的查詢

若要計算每個問題指派的人數

  1. [設計檢視] 中開啟查詢。
  2. 在此範例中,新增 [問題] 資料表。
  3. 將您要使用的欄位拖曳到查詢方格。 在此範例中,將 [標題] 拖曳到第一欄,並將 [AssignedTo ] 拖曳到第二欄。
  4. [設計] 索引標籤上,按一下 [顯示/隱藏] 群組中的 [合計]
    [ 合計 ] 資料列會顯示在查詢方格中。 [分組依據] 預設會顯示在查詢中 [標題] 欄位下的 [ 合計 ] 儲存格中。 運算式預設會顯示在 [指派至] 欄位下的 [合計] 儲存格中,因為您無法直接在多重值欄位上執行 [分組依據] 作業,只能<執行 [欄位名稱>]。值欄位。
  5. 在查詢方格中,在 [AssignedTo] 底下的 [ 合計 ] 列中,按一下 [計數]。
  6. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]

結果 每個問題指派的人員計數會以平面檢視顯示。

顯示每個議題人數的查詢結果

頁面頂端

使用包含多重值欄位的新增查詢

您可以使用 [新增] 查詢,將單一值插入多重值欄位。 例如,假設您要將 “Tom Michaels” 新增至 [問題] 資料表中的 AssignedTo 多重值欄位。

備註 這是唯一可與多重值欄位搭配使用的新增查詢類型。

  1. [設計檢視] 中開啟查詢。
  2. 新增 [問題] 資料表。
  3. 在 [ 設計 ] 索引標籤上,按一下 [附加]。
  4. [新增 ] 對話方塊中,選取 [ 問題],然後按一下 [確定]。
  5. 在設計格線的 [ 附加至 ] 列中,選取 AssignedTo.Value
  6. 在 [設計格線] 的 [欄位 ] 列中,輸入 “Tom Michaels”。
  7. 若要將附加作業限制為特定問題,請將欄位新增至設計格線,例如 [標題]、從 [附加至] 資料列移除 [標題],然後輸入條件,例如「問題 3」。
  8. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]
    Access 可能會要求您確認是否要附加選取的資料列。 按一下 [ ] 插入列,或按一下 [否 ] 取消。

結果 “Tom Michaels” 現在已新增至第 3 期的 AssignedTo 欄位中。

重要 您不能使用參照包含多重值欄位之資料表的 [新增查詢]。 例如,下列查詢無效:

INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;

頁面頂端

使用具有多重值欄位的 [更新] 查詢

您可以使用 Update 查詢,將多重值欄位中的單一值變更為另一個值。 在此範例中,您想要更新 AssignedTo 多重值欄位,以將 “Kelly Rollin” 取代為 “Lisa Miller”。

  1. [設計檢視] 中開啟查詢。
  2. 新增 [問題] 資料表。
  3. 按一下 [設計 ] 索引標籤上的 [ 更新]。
  4. AssignedTo.Value 拖曳到查詢方格。
  5. [更新至 ] 列中,輸入 “Lisa Miller”。
  6. [準則 ] 資料列中,輸入 “Kelly Rollin”。
  7. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]
    Access 可能會要求您確認是否要附加選取的資料列。 按一下 [ ] 插入列,或按一下 [否 ] 取消。

結果 Lisa Miller 會針對所有對應問題取代 [ 指派至 ] 欄位中的 Kelly Rollin。

頁面頂端

使用具有多重值欄位的刪除查詢

當您使用包含多重值欄位的資料表時,您可以使用刪除查詢來刪除多重值欄位中包含特定值的記錄,或刪除資料表中所有記錄中多重值欄位中的特定值。 在下列範例中,假設您想要從 [問題] 資料表刪除 “David Hamilton”。

重要 當您使用刪除查詢刪除包含資料的多重值欄位時,該資料會永久遺失,而且無法復原刪除動作。 因此,您應該先備份資料庫,再刪除任何資料表欄位或其他資料庫元件。

刪除所有記錄中多重值欄位中的特定值

  1. 在 [建立] 索引標籤的 [查詢] 群組中,按一下 [查詢設計]
  2. 新增 [問題] 資料表。
  3. [設計檢視] 中開啟查詢。
  4. 按一下 [設計 ] 索引標籤上的 [ 刪除]。
  5. [準則 ] 資料列中,輸入 “David Hamilton”。
  6. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]
    Access 可能會要求您確認是否要刪除記錄。 按一下 [是 ] 刪除記錄,或按一下 [否 ] 取消。

結果 大衛·漢密爾頓 (David Hamilton) 因所有相應問題被除名。

刪除多重值欄位中包含特定值的記錄

  1. 在 [建立] 索引標籤的 [查詢] 群組中,按一下 [查詢設計]

  2. 新增 [問題] 資料表。

  3. [設計檢視] 中開啟查詢。

  4. [設計 ] 索引標籤上,按一下 [刪除 群組]。

  5. 在 [ 設計 ] 索引標籤的 [結果 ] 群組中,按一下 [檢視 ] 下的箭號,然後按一下 [SQL 檢視]。

  6. 輸入下列 SQL 陳述式:

    DELETE FROM Issues WHERE (((Issues.AssignedTo.Value)="David Hamilton"));
    

    備註 在此情況下,您只能使用 SQL 陳述式,而不能使用 [設計] 格線。 如果您切換到 [設計格線] 檢視,Access 會在 DELETE 陳述式之後加上星號 (*) ,您應從 SQL 檢視中移除該星號。

  7. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]
    Access 可能會要求您確認是否要刪除記錄。 按一下 [是 ] 刪除記錄,或按一下 [否 ] 取消。

結果 指派 David Hamilton 的所有問題都會移除。

頁面頂端