在查詢中使用多值字段
- 2017-09-23 21:28:00
- 微軟 轉(zhuǎn)貼
- 6185
在查詢中使用多值字段
在 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)容
什么是多值字段?
假設(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)情況下)。
多值字段背后的理念是使您在選擇并存儲(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è)雇員分配給許多事件。
查詢簡(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)作查詢。
在查詢中顯示多值字段
在查詢中顯示多值字段時(shí),您必須決定是要顯示包含由逗號(hào)分隔的所有值的整個(gè)多值字段,還是顯示每個(gè)值的單獨(dú)行。例如,假設(shè)您有一個(gè)“問題”表,其中包含用于向人員分配事件的“分配給”字段。您可以使用以下步驟構(gòu)建一個(gè)包含“分配給”字段的查詢:
單擊“Microsoft Office 按鈕”
,然后單擊“打開”。
在“打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。
在“創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”。
在“顯示表”對(duì)話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”。
單擊“關(guān)閉”。
將要使用的字段拖動(dòng)到查詢?cè)O(shè)計(jì)網(wǎng)格。在本例中,將“標(biāo)題”字段和名為“分配給”的多值字段拖動(dòng)到查詢網(wǎng)格。
在“設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“運(yùn)行”。
您的查詢結(jié)果將如下圖中所示:第一列顯示問題標(biāo)題,第二列顯示多值字段:
在使用設(shè)計(jì)視圖創(chuàng)建查詢時(shí),Access 會(huì)自動(dòng)生成相應(yīng)的 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句。SQL 是 Access 使用的查詢語(yǔ)言??梢允褂靡韵虏襟E切換到 SQL 視圖來查看 SQL 語(yǔ)句。
在“設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。
單擊“SQL 視圖”。
該 SQL 語(yǔ)句類似以下形式:
SELECT Issues.Title, Issues.AssignedTo FROM Issues;
在多值字段中顯示單個(gè)值
假設(shè)您要查看展開的(有時(shí)稱為平展的)“分配給”多值字段,以使每個(gè)名稱或“分配給”值顯示在單獨(dú)的行中。為此,您需要通過在“字段”行中向“分配給”追加字符串“.Value”來指定 Value 屬性,如下面的查詢網(wǎng)格中所示:
如果在“字段”行中指定分配給,當(dāng)您運(yùn)行查詢時(shí),Access 將只在一行中顯示多值字段中的所有值。但是,當(dāng)您使用 Value 屬性(如在 AssignedTo.Value 中)時(shí),Access 將以展開的形式顯示多值字段,以使每個(gè)值都顯示在單獨(dú)的行中??梢允褂靡韵虏襟E創(chuàng)建查詢來顯示單個(gè)值。
單擊“Microsoft Office 按鈕”
,然后單擊“打開”。
在“打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。
在“創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”。
在“顯示表”對(duì)話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”。
單擊“關(guān)閉”。
將要使用的字段(在本例中為名為“分配給.值”的多值字段)拖動(dòng)到查詢網(wǎng)格。
在“設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“運(yùn)行”。
在使用設(shè)計(jì)視圖創(chuàng)建查詢時(shí),Access 會(huì)自動(dòng)生成相應(yīng)的 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句。SQL 是 Access 使用的查詢語(yǔ)言??梢允褂靡韵虏襟E切換到 SQL 視圖來查看 SQL 語(yǔ)句。
在“設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。
單擊“SQL 視圖”。
該 SQL 語(yǔ)句類似以下形式:
SELECT Issues.Title, Issues.AssignedTo.Value FROM Issues;
了解查閱字段中的綁定值和顯示值
多值字段是查閱字段。查閱字段是表中的一個(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)系人姓名是顯示值。
1. 顯示值。
2. 綁定值。
可以在設(shè)計(jì)視圖中查看多值字段的“查閱”屬性。方法如下:
單擊“Microsoft Office 按鈕”
,然后單擊“打開”。
在“打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。
在導(dǎo)航窗格中,右鍵單擊存儲(chǔ)多值字段的表。
單擊“設(shè)計(jì)視圖”。
單擊多值字段(例如,單擊“分配給”)。
在“字段屬性”下,單擊“查閱”選項(xiàng)卡。
了解查閱字段的顯示值及其綁定值之間的差別非常重要。默認(rèn)情況下,顯示值自動(dòng)顯示在數(shù)據(jù)表視圖中。但綁定值是存儲(chǔ)的值以及在查詢條件中使用的值,并且是 Access 默認(rèn)情況下在與其他表的聯(lián)接中使用的值。
如何在查詢中顯示綁定值
默認(rèn)情況下,顯示值自動(dòng)顯示在數(shù)據(jù)表視圖中。在創(chuàng)建查詢時(shí),可以取代此行為以便顯示綁定值。以下是您要采取的步驟:
單擊“Microsoft Office 按鈕”
,然后單擊“打開”。
在“打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。
在“創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”。
在“顯示表”對(duì)話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”。
單擊“關(guān)閉”。
將要使用的字段拖動(dòng)到查詢?cè)O(shè)計(jì)網(wǎng)格。在本例中,將“標(biāo)題”字段和名為“分配給”的多值字段拖動(dòng)到查詢網(wǎng)格。
在查詢網(wǎng)格內(nèi)的“AssignedTo.Value”字段中單擊,以使焦點(diǎn)位于該字段中。
在“設(shè)計(jì)”選項(xiàng)卡上的“顯示/隱藏”組中,單擊“屬性表”。
在“屬性表”中,在“查閱”選項(xiàng)卡上的“顯示控件”屬性中,選擇“文本框”。
在將“顯示控件”屬性更改為“文本框”時(shí),會(huì)禁用常規(guī)的查閱列行為,以便顯示綁定值而不是顯示值。
為多值字段輸入簡(jiǎn)單查詢條件
假設(shè)您要查看分配給“王凱利”的問題??梢栽诓樵兙W(wǎng)格內(nèi)的“條件”行中輸入查詢條件,但在為查閱字段輸入條件時(shí),必須輸入綁定值而非顯示值。在本例中,您確定王凱利的綁定值是 6。該值是“聯(lián)系人擴(kuò)展信息”查詢中凱利的主鍵值。
創(chuàng)建一個(gè)查詢,顯示分配給凱利的問題:
單擊“Microsoft Office 按鈕”
,然后單擊“打開”。
在“打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。
在“創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”。
在“顯示表”對(duì)話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”。
單擊“關(guān)閉”。
將要使用的字段拖動(dòng)到查詢網(wǎng)格。在本例中,將“標(biāo)題”拖動(dòng)到網(wǎng)格中的第一列。然后,將“分配給”拖動(dòng)到第二列。
在該查詢網(wǎng)格選項(xiàng)卡上,在“分配給”下的“條件”行中,輸入“6”。請(qǐng)注意,您輸入的是綁定值而非顯示值。
在“設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“運(yùn)行”以運(yùn)行查詢。
在運(yùn)行查詢時(shí),結(jié)果顯示在數(shù)據(jù)表視圖中。請(qǐng)注意,該查詢僅返回出現(xiàn)“王凱利”的行。
在使用設(shè)計(jì)視圖創(chuàng)建查詢時(shí),Access 會(huì)自動(dòng)生成相應(yīng)的 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句。SQL 是 Access 使用的查詢語(yǔ)言??梢允褂靡韵虏襟E切換到 SQL 視圖來查看 SQL 語(yǔ)句。
在“設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。
單擊“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)系人姓名)。然后,可以搜索該字段而非多值字段。
單擊“Microsoft Office 按鈕”
,然后單擊“打開”。
在“打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。
在“創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”。
在“顯示表”對(duì)話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”。
在“顯示表”對(duì)話框中,單擊“查詢”選項(xiàng)卡,單擊作為多值字段源的查詢(本例中為“聯(lián)系人擴(kuò)展信息”),然后單擊“添加”。
單擊“關(guān)閉”。
將要使用的字段拖動(dòng)到查詢網(wǎng)格。在本例中,將“標(biāo)題”從“問題”表拖動(dòng)到網(wǎng)格中的第一列。然后,將“聯(lián)系人姓名”從“聯(lián)系人擴(kuò)展信息”查詢拖動(dòng)到第二列,并清除“顯示”復(fù)選框。接下來,將“分配給”拖動(dòng)到第三列。
如果“聯(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。
在查詢窗格中,在“聯(lián)系人姓名”下的“條件”行中,輸入“王凱利”。
在“設(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)系人姓名。因此,可以提供要匹配的文本,在本例中為“王凱利”。
在使用設(shè)計(jì)視圖創(chuàng)建查詢時(shí),Access 會(huì)自動(dòng)生成相應(yīng)的 SQL(結(jié)構(gòu)化查詢語(yǔ)言)語(yǔ)句。SQL 是 Access 使用的查詢語(yǔ)言??梢允褂靡韵虏襟E切換到 SQL 視圖來查看 SQL 語(yǔ)句。
在“設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“視圖”下的箭頭以顯示“視圖”菜單。
單擊“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"));
在多值字段中搜索多個(gè)值
有時(shí)候,您需要搜索對(duì)多個(gè)值的匹配。假設(shè)您要查看“王凱利”和“郭莎莎”為“分配給”字段中的值時(shí)對(duì)應(yīng)的那些問題?!巴鮿P利”的綁定值是 6,“郭莎莎”的綁定值是 10。要為一個(gè)多值字段指定幾個(gè)條件,可以使用 AND 和 OR 運(yùn)算符。
要?jiǎng)?chuàng)建查詢,請(qǐng)使用以下步驟。
單擊“Microsoft Office 按鈕”
,然后單擊“打開”。
在“打開”對(duì)話框中,選擇并打開數(shù)據(jù)庫(kù)。
在“創(chuàng)建”選項(xiàng)卡上的“其他”組中,單擊“查詢?cè)O(shè)計(jì)”。
在“顯示表”對(duì)話框中,單擊包含多值字段的表(在本例中為“問題”表),然后單擊“添加”。
單擊“關(guān)閉”。
將要使用的字段拖動(dòng)到查詢網(wǎng)格。在本例中,將“標(biāo)題”拖動(dòng)到網(wǎng)格中的第一列。然后,將“分配給”拖動(dòng)到第二列。
在查詢網(wǎng)格中,在“分配給”下的“條件”行中,鍵入“6 And 10”。
在“設(shè)計(jì)”選項(xiàng)卡上的“結(jié)果”組中,單擊“運(yùn)行”以運(yùn)行查詢。
在運(yùn)行查詢時(shí),結(jié)果顯示在數(shù)據(jù)表視圖中。
結(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ǔ)句。
- office課程播放地址及課程明細(xì)
- Excel Word PPT Access VBA等Office技巧學(xué)習(xí)平臺(tái)
- 將( .accdb) 文件格式數(shù)據(jù)庫(kù)轉(zhuǎn)換為早期版本(.mdb)的文件格式
- 將早期的數(shù)據(jù)庫(kù)文件格式(.mdb)轉(zhuǎn)換為 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 數(shù)據(jù)庫(kù)引擎和訪問連接引擎以阻止對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的訪問(remote table)
- Access 365 /Access 2019 數(shù)據(jù)庫(kù)中哪些函數(shù)功能和屬性被沙箱模式阻止(如未啟動(dòng)宏時(shí))
- Access Runtime(運(yùn)行時(shí))最全的下載(2007 2010 2013 2016 2019 Access 365)
- access vba代碼太長(zhǎng),換行,分行的寫法
- VB6 VBA Access真正可用并且完美支持中英文的 URLEncode 與 URLDecode 函數(shù)源碼
- 自定義VB中的urlencode函數(shù),將URL中特殊部分進(jìn)行編碼
- Access 函數(shù)簡(jiǎn)化串接sql字符串,減少符號(hào)導(dǎo)致的書寫錯(cuò)誤
- vba完全關(guān)閉IE瀏覽器及調(diào)用IE瀏覽器的簡(jiǎn)單應(yīng)用
- 利用FollowHyperlink方法打開超鏈接提示“無法下載您要求的信息”的解決方案
- 在access中用代碼打開文本框中超鏈接地址
- Activex控件或Dll 在某些電腦無法正常注冊(cè)的解決辦法(regsvr32注冊(cè)時(shí)卡?。?/a>
- office使用部分控件時(shí)提示“您沒有使用該ActiveX控件許可的問題”的解決方法
- RTF文件(富文本格式)的一些解析
- Access樹控件(treeview) 64位Office下出現(xiàn)橫向滾動(dòng)條不會(huì)自動(dòng)定位的解決辦法
- Access中國(guó)樹控件 在win10電腦 節(jié)點(diǎn)行間距太小的解決辦法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 樹控件 ListView列表等64位MSCOMMCTL.OCX控件下載
- VBA或VB6調(diào)用WebService(直接Post方式)并解析返回的XML
- 早期PB程序連接Sqlserver出現(xiàn)錯(cuò)誤
- MMC 不能打開文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一個(gè)MMC控制臺(tái),或者用后來的MMC版
- sql server連接不了的解決辦法
- localhost與127.0.0.1區(qū)別
- Roych的淺談數(shù)據(jù)庫(kù)開發(fā)系列(Sql Server)
- sqlserver 自動(dòng)備份對(duì)備份目錄沒有存取權(quán)限的解決辦法
- 安裝Sql server 2005 express 和SQLServer2005 Express版企業(yè)管理器 SQLServer2005_SSMSEE
聯(lián)系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |