office交流網(wǎng)--QQ交流群號(hào)及微信交流群

Access培訓(xùn)群:792054000         Excel免費(fèi)交流群群:686050929          Outlook交流群:221378704    

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

微信交流群(請(qǐng)用微信掃碼)

        

在查詢中使用多值字段

2017-09-23 21:28:00
微軟
轉(zhuǎn)貼
6185

在查詢中使用多值字段

適用于: Access 2007

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

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

本文內(nèi)容

什么是多值的字段?

查詢簡(jiǎn)介

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

在多值字段中顯示單個(gè)值

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

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

多值字段中輸入簡(jiǎn)單查詢條件

搜索多值字段中的多個(gè)值

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

計(jì)數(shù)、 分組和使用其他聚合函數(shù)

使用多值字段的追加查詢

多值字段中使用更新查詢

刪除查詢中使用多值字段

返回頁(yè)首

什么是多值字段?

假設(shè)您有一項(xiàng)任務(wù)要分配給某個(gè)雇員或承包商,但您認(rèn)為需要將它分配給多個(gè)人員。在 Office Access 2007 中,您可以創(chuàng)建一個(gè)多值字段,這樣就可從列表中選擇人員。

多值字段

單擊組合框時(shí),復(fù)選框顯示為選中狀態(tài)以指示您的選擇。您可以選中或清除列表中的項(xiàng)目,然后單擊“確定”提交您的選擇。

多值字段組合框

所選的人員將存儲(chǔ)在多值字段中,并在顯示時(shí)用逗號(hào)分隔(默認(rèn)情況下)。

用逗號(hào)分隔值的多值字段

多值字段背后的理念是使您在選擇并存儲(chǔ)多個(gè)選項(xiàng)等情況下能夠輕松地提供支持,而無需創(chuàng)建更高級(jí)的數(shù)據(jù)庫(kù)設(shè)計(jì)。多值字段對(duì)于與 Windows SharePoint Services 的集成也很重要,因?yàn)?SharePoint 列表也支持多值字段。

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

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

返回頁(yè)首

查詢簡(jiǎn)介

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

Office Access 2007 允許您在某些查詢中通過特定方式使用多值字段。您可以在查詢中顯示多值字段,在查詢內(nèi)的多值字段中顯示單個(gè)值以及使用多值字段執(zhí)行某些選定的聚合運(yùn)算和動(dòng)作查詢。

返回頁(yè)首

在查詢中顯示多值字段

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

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

  2. “打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。

  3. “創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”

    Access 功能區(qū)圖像

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

  5. 單擊“關(guān)閉”。

  6. 將要使用的字段拖動(dòng)到查詢?cè)O(shè)計(jì)網(wǎng)格。在本例中,將“標(biāo)題”字段和名為“分配給”的多值字段拖動(dòng)到查詢網(wǎng)格。

  7. “設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“運(yùn)行”

您的查詢結(jié)果將如下圖中所示:第一列顯示問題標(biāo)題,第二列顯示多值字段: 

顯示“標(biāo)題”和“分配給”字段的查詢結(jié)果

在使用設(shè)計(jì)視圖創(chuàng)建查詢時(shí),Access 會(huì)自動(dòng)生成相應(yīng)的 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句。SQL 是 Access 使用的查詢語(yǔ)言??梢允褂靡韵虏襟E切換到 SQL 視圖來查看 SQL 語(yǔ)句。

  1. “設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。

  2. 單擊“SQL 視圖”

該 SQL 語(yǔ)句類似以下形式:

SELECT Issues.Title, 
Issues.AssignedTo
FROM Issues;

返回頁(yè)首

在多值字段中顯示單個(gè)值

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

顯示“標(biāo)題”和“分配給.值”的查詢網(wǎng)格

如果在“字段”行中指定分配給,當(dāng)您運(yùn)行查詢時(shí),Access 將只在一行中顯示多值字段中的所有值。但是,當(dāng)您使用 Value 屬性(如在 AssignedTo.Value 中)時(shí),Access 將以展開的形式顯示多值字段,以使每個(gè)值都顯示在單獨(dú)的行中??梢允褂靡韵虏襟E創(chuàng)建查詢來顯示單個(gè)值。

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

  2. “打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。

  3. “創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”。

    Access 功能區(qū)圖像

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

  5. 單擊“關(guān)閉”。

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

  7. “設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“運(yùn)行”。

顯示“標(biāo)題”和每個(gè)“分配給”值的查詢結(jié)果

在使用設(shè)計(jì)視圖創(chuàng)建查詢時(shí),Access 會(huì)自動(dòng)生成相應(yīng)的 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句。SQL 是 Access 使用的查詢語(yǔ)言??梢允褂靡韵虏襟E切換到 SQL 視圖來查看 SQL 語(yǔ)句。

  1. “設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。

  2. 單擊“SQL 視圖”。

該 SQL 語(yǔ)句類似以下形式:

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

返回頁(yè)首

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

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

與具有顯示值和綁定值的單值查閱字段相似,多值查閱字段的顯示值顯示在用戶界面上,而綁定值存儲(chǔ)在表中。對(duì)于多值字段中的每一項(xiàng),顯示值基于綁定值進(jìn)行“查閱”。

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

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

帶有顯示顯示值的數(shù)據(jù)表與顯示綁定值的數(shù)據(jù)表

1. 顯示值。

2. 綁定值。

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

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

  2. “打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。

  3. 在導(dǎo)航窗格中,右鍵單擊存儲(chǔ)多值字段的表。

  4. 單擊“設(shè)計(jì)視圖”。

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

  6. “字段屬性”下,單擊“查閱”選項(xiàng)卡。

多值查閱字段屬性

了解查閱字段的顯示值及其綁定值之間的差別非常重要。默認(rèn)情況下,顯示值自動(dòng)顯示在數(shù)據(jù)表視圖中。但綁定值是存儲(chǔ)的值以及在查詢條件中使用的值,并且是 Access 默認(rèn)情況下在與其他表的聯(lián)接中使用的值。

返回頁(yè)首

如何在查詢中顯示綁定值

默認(rèn)情況下,顯示值自動(dòng)顯示在數(shù)據(jù)表視圖中。在創(chuàng)建查詢時(shí),可以取代此行為以便顯示綁定值。以下是您要采取的步驟:

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

  2. “打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。

  3. “創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”

    Access 功能區(qū)圖像

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

  5. 單擊“關(guān)閉”。

  6. 將要使用的字段拖動(dòng)到查詢?cè)O(shè)計(jì)網(wǎng)格。在本例中,將“標(biāo)題”字段和名為“分配給”的多值字段拖動(dòng)到查詢網(wǎng)格。

  7. 在查詢網(wǎng)格內(nèi)的“AssignedTo.Value”字段中單擊,以使焦點(diǎn)位于該字段中。

  8. “設(shè)計(jì)”選項(xiàng)卡上的“顯示/隱藏”組中,單擊“屬性表”。

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

查詢?cè)O(shè)計(jì)中的“顯示控件”屬性

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

查詢結(jié)果中顯示的綁定值

返回頁(yè)首

為多值字段輸入簡(jiǎn)單查詢條件

假設(shè)您要查看分配給“王凱利”的問題??梢栽诓樵兙W(wǎng)格內(nèi)的“條件”行中輸入查詢條件,但在為查閱字段輸入條件時(shí),必須輸入綁定值而非顯示值。在本例中,您確定王凱利的綁定值是 6。該值是“聯(lián)系人擴(kuò)展信息”查詢中凱利的主鍵值。

創(chuàng)建一個(gè)查詢,顯示分配給凱利的問題:

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

  2. “打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。

  3. “創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”。

    Access 功能區(qū)圖像

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

  5. 單擊“關(guān)閉”。

  6. 將要使用的字段拖動(dòng)到查詢網(wǎng)格。在本例中,將“標(biāo)題”拖動(dòng)到網(wǎng)格中的第一列。然后,將“分配給”拖動(dòng)到第二列。

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

    多值字段中具有條件的查詢網(wǎng)格

  8. “設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“運(yùn)行”以運(yùn)行查詢。

在運(yùn)行查詢時(shí),結(jié)果顯示在數(shù)據(jù)表視圖中。請(qǐng)注意,該查詢僅返回出現(xiàn)“王凱利”的行。

“分配給”值包含 6 的查詢結(jié)果

在使用設(shè)計(jì)視圖創(chuàng)建查詢時(shí),Access 會(huì)自動(dòng)生成相應(yīng)的 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句。SQL 是 Access 使用的查詢語(yǔ)言??梢允褂靡韵虏襟E切換到 SQL 視圖來查看 SQL 語(yǔ)句。

  1. “設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。

  2. 單擊“SQL 視圖”。

該 SQL 語(yǔ)句類似以下形式:

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

搜索文本而非 ID 號(hào)

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

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

在本例中,聯(lián)系人姓名字段不是位于表中,而是位于為“分配給”多值字段提供數(shù)據(jù)的源查詢中??梢詫⒃摱嘀底侄蔚脑幢砘虿樵兣c包含該多值字段的表相聯(lián)接,以在查詢結(jié)果中包括源表或查詢中的字段(本例中為聯(lián)系人姓名)。然后,可以搜索該字段而非多值字段。

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

  2. “打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。

  3. “創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”

    Access 功能區(qū)圖像

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

  5. “顯示表”對(duì)話框中,單擊“查詢”選項(xiàng)卡,單擊作為多值字段源的查詢(本例中為“聯(lián)系人擴(kuò)展信息”),然后單擊“添加”。

  6. 單擊“關(guān)閉”。

  7. 將要使用的字段拖動(dòng)到查詢網(wǎng)格。在本例中,將“標(biāo)題”從“問題”表拖動(dòng)到網(wǎng)格中的第一列。然后,將“聯(lián)系人姓名”從“聯(lián)系人擴(kuò)展信息”查詢拖動(dòng)到第二列,并清除“顯示”復(fù)選框。接下來,將“分配給”拖動(dòng)到第三列。

  8. 如果“聯(lián)系人擴(kuò)展信息”查詢中的“ID”字段和“AssignedTo.Value”字段之間的聯(lián)接線不可見(如下所示),請(qǐng)?jiān)凇奥?lián)系人擴(kuò)展信息”查詢內(nèi)的“ID”字段中單擊,并拖動(dòng)到“問題”表中的“AssignedTo.Value”字段。

    將出現(xiàn)聯(lián)接線。

    如果任何其他聯(lián)接線可見,請(qǐng)刪除它們。要?jiǎng)h除聯(lián)接線,請(qǐng)單擊該聯(lián)接線以使其突出顯示,然后按 Delete。

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

    查詢網(wǎng)格中的“分配給”條件中包含“王凱利”

  10. “設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“運(yùn)行”以運(yùn)行查詢。

在運(yùn)行查詢時(shí),結(jié)果顯示在數(shù)據(jù)表視圖中。請(qǐng)注意,查詢結(jié)果只顯示出現(xiàn)“王凱利”的行。由于源表或查詢中的 ID 和“AssignedTo.Value”字段為多值字段中的每個(gè)值返回一個(gè)單獨(dú)的行,并且每行僅包含一個(gè)帶有全名的“聯(lián)系人姓名”字段,因此該技術(shù)能夠起作用。因?yàn)椤奥?lián)系人姓名”是計(jì)算字段而非查閱字段,所以沒有綁定值和顯示值。只有一個(gè)值,即聯(lián)系人姓名。因此,可以提供要匹配的文本,在本例中為“王凱利”。 

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

在使用設(shè)計(jì)視圖創(chuàng)建查詢時(shí),Access 會(huì)自動(dòng)生成相應(yīng)的 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句。SQL 是 Access 使用的查詢語(yǔ)言??梢允褂靡韵虏襟E切換到 SQL 視圖來查看 SQL 語(yǔ)句。

  1. “設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。

  2. 單擊“SQL 視圖”。

該 SQL 語(yǔ)句類似以下形式:

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"));

返回頁(yè)首

在多值字段中搜索多個(gè)值

有時(shí)候,您需要搜索對(duì)多個(gè)值的匹配。假設(shè)您要查看“王凱利”和“郭莎莎”為“分配給”字段中的值時(shí)對(duì)應(yīng)的那些問題?!巴鮿P利”的綁定值是 6,“郭莎莎”的綁定值是 10。要為一個(gè)多值字段指定幾個(gè)條件,可以使用 AND 和 OR 運(yùn)算符。

要?jiǎng)?chuàng)建查詢,請(qǐng)使用以下步驟。

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

  2. “打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。

  3. “創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”。

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

  5. 單擊“關(guān)閉”。

  6. 將要使用的字段拖動(dòng)到查詢網(wǎng)格。在本例中,將“標(biāo)題”拖動(dòng)到網(wǎng)格中的第一列。然后,將“分配給”拖動(dòng)到第二列。

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

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

  8. “設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“運(yùn)行”以運(yùn)行查詢。

在運(yùn)行查詢時(shí),結(jié)果顯示在數(shù)據(jù)表視圖中。

在多值字段中使用 AND 的查詢結(jié)果

結(jié)果只顯示同時(shí)分配給“王凱利”和“郭莎莎”的問題。在使用設(shè)計(jì)視圖創(chuàng)建查詢時(shí),Access 會(huì)自動(dòng)生成相應(yīng)的 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句。SQL 是 Access 使用的查詢語(yǔ)言??梢允褂靡韵虏襟E切換到 SQL 視圖來查看 SQL 語(yǔ)句。

分享
文章分類
聯(lián)系我們
聯(lián)系人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
? 1999-2025 Office交流網(wǎng)?? 中山市天鳴科技發(fā)展有限公司 粵ICP備10043721號(hào) SQL查詢:19
內(nèi)存占用:6.00MB
PHP 執(zhí)行時(shí)間:0.19
移動(dòng)訪問