office交流網--QQ交流群號

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

在查詢中使用多值字段

2017-09-23 21:28:00
微軟
轉貼
1922

在查詢中使用多值字段

在 Microsoft Office Access 2007 中,您可以創建可存放多個值的字段,例如分配了問題的人員的列表。多值字段非常適合于某些情況,例如,當您使用 Office Access 2007 來處理存儲在 Windows SharePoint Services 3.0 列表中的信息,并且該列表所包含的某個字段使用的是 Windows SharePoint Services 3.0 中可用的其中一種多值字段類型時。

本文討論多值字段以及如何在查詢中使用多值字段。

本文內容

什么是多值的字段?

查詢簡介

顯示在查詢中的多值的字段

在多值字段中顯示單個值

了解綁定的值和顯示值的查閱字段中

如何在查詢中顯示的綁定的值

多值字段中輸入簡單查詢條件

搜索多值字段中的多個值

了解包括的影響。在字段列表中的值字段

計數、 分組和使用其他聚合函數

使用多值字段的追加查詢

多值字段中使用更新查詢

刪除查詢中使用多值字段

返回頁首

什么是多值字段?

假設您有一項任務要分配給某個雇員或承包商,但您認為需要將它分配給多個人員。在 Office Access 2007 中,您可以創建一個多值字段,這樣就可從列表中選擇人員。

多值字段

單擊組合框時,復選框顯示為選中狀態以指示您的選擇。您可以選中或清除列表中的項目,然后單擊“確定”提交您的選擇。

多值字段組合框

所選的人員將存儲在多值字段中,并在顯示時用逗號分隔(默認情況下)。

用逗號分隔值的多值字段

多值字段背后的理念是使您在選擇并存儲多個選項等情況下能夠輕松地提供支持,而無需創建更高級的數據庫設計。多值字段對于與 Windows SharePoint Services 的集成也很重要,因為 SharePoint 列表也支持多值字段。

您可能想知道為什么 Office Access 2007 允許您在一個字段中存儲多個值,而大多數關系數據庫管理系統禁止這樣做。答案是:Office Access 2007 中的數據庫引擎并不真正將多個值存儲在一個字段中。即使您看到和使用的似乎是一個字段,但這些值實際上單獨存儲,并且在一個隱藏的系統表中進行管理。Access 數據庫引擎會幫您處理這些工作,自動分隔數據并將它們重新收集在一起,就像它們是在一個字段中。

從技術角度來說,Access 多值字段建立了一個多對多關系模型。例如,考慮一個事件表,您可以在其中將每個事件的責任分配給一個或多個雇員。假設您創建一個名為“分配給”的多值字段,用于將事件分配給雇員。事件和雇員之間是多對多的關系。也就是說,您可以將許多雇員分配給任何一個事件,也可以將任何一個雇員分配給許多事件。

返回頁首

查詢簡介

數據庫的主要用途是提供信息:“我公司最暢銷的產品是什么?誰是我們的最佳客戶?我公司在哪些方面沒有達到銷售目標?”。您可以從設計完善的數據庫中找到所有這些問題的答案。要從 Access 數據庫中得到答案,您可以創建一個查詢并輸入所需的條件。查詢值的數據可用來自一個或多個表。在 Access 檢索到解答問題的數據后,您可以查看和分析這些數據。在創建了查詢后,您可以將該查詢作為窗體、報表、圖形甚至其他查詢的基礎。

Office Access 2007 允許您在某些查詢中通過特定方式使用多值字段。您可以在查詢中顯示多值字段,在查詢內的多值字段中顯示單個值以及使用多值字段執行某些選定的聚合運算和動作查詢。

返回頁首

在查詢中顯示多值字段

在查詢中顯示多值字段時,您必須決定是要顯示包含由逗號分隔的所有值的整個多值字段,還是顯示每個值的單獨行。例如,假設您有一個“問題”表,其中包含用于向人員分配事件的“分配給”字段。您可以使用以下步驟構建一個包含“分配給”字段的查詢:

  1. 單擊“Microsoft Office 按鈕” Office 按鈕圖像 ,然后單擊“打開”。

  2. “打開”對話框中,選擇并打開數據庫。

  3. “創建”選項卡上的“其他”組中,單擊“查詢設計”

    Access 功能區圖像

  4. “顯示表”對話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”

  5. 單擊“關閉”

  6. 將要使用的字段拖動到查詢設計網格。在本例中,將“標題”字段和名為“分配給”的多值字段拖動到查詢網格。

  7. “設計”選項卡上的“結果”組中,單擊“運行”

您的查詢結果將如下圖中所示:第一列顯示問題標題,第二列顯示多值字段: 

顯示“標題”和“分配給”字段的查詢結果

在使用設計視圖創建查詢時,Access 會自動生成相應的 SQL(結構化查詢語言)語句。SQL 是 Access 使用的查詢語言。可以使用以下步驟切換到 SQL 視圖來查看 SQL 語句。

  1. “設計”選項卡上的“結果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。

  2. 單擊“SQL 視圖”

該 SQL 語句類似以下形式:

SELECT Issues.Title, 
Issues.AssignedTo
FROM Issues;

返回頁首

在多值字段中顯示單個值

假設您要查看展開的(有時稱為平展的)“分配給”多值字段,以使每個名稱或“分配給”值顯示在單獨的行中。為此,您需要通過在“字段”行中向“分配給”追加字符串“.Value”來指定 Value 屬性,如下面的查詢網格中所示:

顯示“標題”和“分配給.值”的查詢網格

如果在“字段”行中指定分配給,當您運行查詢時,Access 將只在一行中顯示多值字段中的所有值。但是,當您使用 Value 屬性(如在 AssignedTo.Value 中)時,Access 將以展開的形式顯示多值字段,以使每個值都顯示在單獨的行中。可以使用以下步驟創建查詢來顯示單個值。

  1. 單擊“Microsoft Office 按鈕” Office 按鈕圖像 ,然后單擊“打開”。

  2. “打開”對話框中,選擇并打開數據庫。

  3. “創建”選項卡上的“其他”組中,單擊“查詢設計”

    Access 功能區圖像

  4. “顯示表”對話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”

  5. 單擊“關閉”

  6. 將要使用的字段(在本例中為名為“分配給.值”的多值字段)拖動到查詢網格。

  7. “設計”選項卡上的“結果”組中,單擊“運行”

顯示“標題”和每個“分配給”值的查詢結果

在使用設計視圖創建查詢時,Access 會自動生成相應的 SQL(結構化查詢語言)語句。SQL 是 Access 使用的查詢語言。可以使用以下步驟切換到 SQL 視圖來查看 SQL 語句。

  1. “設計”選項卡上的“結果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。

  2. 單擊“SQL 視圖”

該 SQL 語句類似以下形式:

SELECT Issues.Title, 
Issues.AssignedTo.Value
FROM Issues;

返回頁首

了解查閱字段中的綁定值和顯示值

多值字段是查閱字段。查閱字段是表中的一個字段,其中的值是從另一個表或查詢中或者從值列表中檢索而來的。Access 已在許多版本中支持單值查閱字段。多值查閱字段對于 Office Access 2007 是新內容。查閱字段的目的是用姓名等更有意義的內容替換 ID(或其他外鍵值)等顯示內容。例如,Access 可以顯示聯系人姓名,而不顯示聯系人 ID 號。聯系人 ID 號是綁定值。系統會在源表或查詢中自動查找聯系人 ID 號,并用聯系人姓名進行替換。聯系人姓名是顯示值。

與具有顯示值和綁定值的單值查閱字段相似,多值查閱字段的顯示值顯示在用戶界面上,而綁定值存儲在表中。對于多值字段中的每一項,顯示值基于綁定值進行“查閱”。

這意味著 Access 顯示的所找到的顯示值經常與字段中所存儲的綁定值不同。例如,在前面的使用“分配給”字段的示例中,來自“聯系人擴展信息”查詢的一組雇員 ID 值存儲在“分配給”字段中。在創建多值字段時,“聯系人擴展信息”查詢被選中作為“行來源”。

這些雇員 ID 是綁定值。但是,由于“分配給”字段是查閱字段,因此 Access 在查詢結果中顯示一組查閱到的值,在此例為聯系人姓名。聯系人姓名是顯示值。 

帶有顯示顯示值的數據表與顯示綁定值的數據表

1. 顯示值。

2. 綁定值。

可以在設計視圖中查看多值字段的“查閱”屬性。方法如下:

  1. 單擊“Microsoft Office 按鈕” Office 按鈕圖像 ,然后單擊“打開”。

  2. “打開”對話框中,選擇并打開數據庫。

  3. 在導航窗格中,右鍵單擊存儲多值字段的表。

  4. 單擊“設計視圖”

  5. 單擊多值字段(例如,單擊“分配給”)。

  6. “字段屬性”下,單擊“查閱”選項卡。

多值查閱字段屬性

了解查閱字段的顯示值及其綁定值之間的差別非常重要。默認情況下,顯示值自動顯示在數據表視圖中。但綁定值是存儲的值以及在查詢條件中使用的值,并且是 Access 默認情況下在與其他表的聯接中使用的值。

返回頁首

如何在查詢中顯示綁定值

默認情況下,顯示值自動顯示在數據表視圖中。在創建查詢時,可以取代此行為以便顯示綁定值。以下是您要采取的步驟:

  1. 單擊“Microsoft Office 按鈕” Office 按鈕圖像 ,然后單擊“打開”。

  2. “打開”對話框中,選擇并打開數據庫。

  3. “創建”選項卡上的“其他”組中,單擊“查詢設計”

    Access 功能區圖像

  4. “顯示表”對話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”

  5. 單擊“關閉”

  6. 將要使用的字段拖動到查詢設計網格。在本例中,將“標題”字段和名為“分配給”的多值字段拖動到查詢網格。

  7. 在查詢網格內的“AssignedTo.Value”字段中單擊,以使焦點位于該字段中。

  8. “設計”選項卡上的“顯示/隱藏”組中,單擊“屬性表”

  9. 在“屬性表”中,在“查閱”選項卡上的“顯示控件”屬性中,選擇“文本框”

查詢設計中的“顯示控件”屬性

在將“顯示控件”屬性更改為“文本框”時,會禁用常規的查閱列行為,以便顯示綁定值而不是顯示值。

查詢結果中顯示的綁定值

返回頁首

為多值字段輸入簡單查詢條件

假設您要查看分配給“王凱利”的問題。可以在查詢網格內的“條件”行中輸入查詢條件,但在為查閱字段輸入條件時,必須輸入綁定值而非顯示值。在本例中,您確定王凱利的綁定值是 6。該值是“聯系人擴展信息”查詢中凱利的主鍵值。

創建一個查詢,顯示分配給凱利的問題:

  1. 單擊“Microsoft Office 按鈕” Office 按鈕圖像 ,然后單擊“打開”。

  2. “打開”對話框中,選擇并打開數據庫。

  3. “創建”選項卡上的“其他”組中,單擊“查詢設計”

    Access 功能區圖像

  4. “顯示表”對話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”

  5. 單擊“關閉”

  6. 將要使用的字段拖動到查詢網格。在本例中,將“標題”拖動到網格中的第一列。然后,將“分配給”拖動到第二列。

  7. 在該查詢網格選項卡上,在“分配給”下的“條件”行中,輸入“6”。請注意,您輸入的是綁定值而非顯示值。

    多值字段中具有條件的查詢網格

  8. “設計”選項卡上的“結果”組中,單擊“運行”以運行查詢。

在運行查詢時,結果顯示在數據表視圖中。請注意,該查詢僅返回出現“王凱利”的行。

“分配給”值包含 6 的查詢結果

在使用設計視圖創建查詢時,Access 會自動生成相應的 SQL(結構化查詢語言)語句。SQL 是 Access 使用的查詢語言。可以使用以下步驟切換到 SQL 視圖來查看 SQL 語句。

  1. “設計”選項卡上的“結果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。

  2. 單擊“SQL 視圖”

該 SQL 語句類似以下形式:

SELECT Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

搜索文本而非 ID 號

如果發現輸入 ID 號比較麻煩,而希望輸入姓名“王凱利”作為搜索條件,該怎樣做?為使其正常運行,查詢結果中必須具有一個包含文本姓名的字段。這樣,就可以在該字段中搜索“王凱利”了。

由于“AssignedTo.Value”字段的綁定值是 ID,您不能使用該字段,因此必須輸入 ID 來篩選該字段。

在本例中,聯系人姓名字段不是位于表中,而是位于為“分配給”多值字段提供數據的源查詢中。可以將該多值字段的源表或查詢與包含該多值字段的表相聯接,以在查詢結果中包括源表或查詢中的字段(本例中為聯系人姓名)。然后,可以搜索該字段而非多值字段。

  1. 單擊“Microsoft Office 按鈕” Office 按鈕圖像 ,然后單擊“打開”。

  2. “打開”對話框中,選擇并打開數據庫。

  3. “創建”選項卡上的“其他”組中,單擊“查詢設計”

    Access 功能區圖像

  4. “顯示表”對話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”

  5. “顯示表”對話框中,單擊“查詢”選項卡,單擊作為多值字段源的查詢(本例中為“聯系人擴展信息”),然后單擊“添加”

  6. 單擊“關閉”

  7. 將要使用的字段拖動到查詢網格。在本例中,將“標題”從“問題”表拖動到網格中的第一列。然后,將“聯系人姓名”從“聯系人擴展信息”查詢拖動到第二列,并清除“顯示”復選框。接下來,將“分配給”拖動到第三列。

  8. 如果“聯系人擴展信息”查詢中的“ID”字段和“AssignedTo.Value”字段之間的聯接線不可見(如下所示),請在“聯系人擴展信息”查詢內的“ID”字段中單擊,并拖動到“問題”表中的“AssignedTo.Value”字段。

    將出現聯接線。

    如果任何其他聯接線可見,請刪除它們。要刪除聯接線,請單擊該聯接線以使其突出顯示,然后按 Delete。

  9. 在查詢窗格中,在“聯系人姓名”下的“條件”行中,輸入“王凱利”

    查詢網格中的“分配給”條件中包含“王凱利”

  10. “設計”選項卡上的“結果”組中,單擊“運行”以運行查詢。

在運行查詢時,結果顯示在數據表視圖中。請注意,查詢結果只顯示出現“王凱利”的行。由于源表或查詢中的 ID 和“AssignedTo.Value”字段為多值字段中的每個值返回一個單獨的行,并且每行僅包含一個帶有全名的“聯系人姓名”字段,因此該技術能夠起作用。因為“聯系人姓名”是計算字段而非查閱字段,所以沒有綁定值和顯示值。只有一個值,即聯系人姓名。因此,可以提供要匹配的文本,在本例中為“王凱利”。 

查詢結果中的“分配給”條件中包含“王凱利”

在使用設計視圖創建查詢時,Access 會自動生成相應的 SQL(結構化查詢語言)語句。SQL 是 Access 使用的查詢語言。可以使用以下步驟切換到 SQL 視圖來查看 SQL 語句。

  1. “設計”選項卡上的“結果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。

  2. 單擊“SQL 視圖”

該 SQL 語句類似以下形式:

SELECT Issues.Title, Issues.AssignedTo 
FROM [Contacts Extended] INNER JOIN Issues ON 
[Contacts Extended].ID = Issues.AssignedTo.Value 
WHERE ((([Contacts Extended].[Contact Name])= 
"Kelly Rollin"));

返回頁首

在多值字段中搜索多個值

有時候,您需要搜索對多個值的匹配。假設您要查看“王凱利”和“郭莎莎”為“分配給”字段中的值時對應的那些問題。“王凱利”的綁定值是 6,“郭莎莎”的綁定值是 10。要為一個多值字段指定幾個條件,可以使用 AND 和 OR 運算符。

要創建查詢,請使用以下步驟。

  1. 單擊“Microsoft Office 按鈕” Office 按鈕圖像 ,然后單擊“打開”。

  2. “打開”對話框中,選擇并打開數據庫。

  3. “創建”選項卡上的“其他”組中,單擊“查詢設計”

  4. “顯示表”對話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”

  5. 單擊“關閉”

  6. 將要使用的字段拖動到查詢網格。在本例中,將“標題”拖動到網格中的第一列。然后,將“分配給”拖動到第二列。

  7. 在查詢網格中,在“分配給”下的“條件”行中,鍵入“6 And 10”。

    在多值字段中使用 AND 的查詢

  8. “設計”選項卡上的“結果”組中,單擊“運行”以運行查詢。

在運行查詢時,結果顯示在數據表視圖中。

在多值字段中使用 AND 的查詢結果

結果只顯示同時分配給“王凱利”和“郭莎莎”的問題。在使用設計視圖創建查詢時,Access 會自動生成相應的 SQL(結構化查詢語言)語句。SQL 是 Access 使用的查詢語言。可以使用以下步驟切換到 SQL 視圖來查看 SQL 語句。

分享
? 1999-2020 Office交流網?? 中山市天鳴科技發展有限公司 粵ICP備10043721號-5 SQL查詢:19
內存占用:8.75MB
PHP 執行時間:0.19
北京十一选五基本走势