visual basic 第14章 數(shù)據庫應用基礎
《visual basic 第14章 數(shù)據庫應用基礎》由會員分享,可在線閱讀,更多相關《visual basic 第14章 數(shù)據庫應用基礎(127頁珍藏版)》請在裝配圖網上搜索。
1、第第1414章章 數(shù)據庫應用基礎數(shù)據庫應用基礎w 14.1 創(chuàng)建數(shù)據庫創(chuàng)建數(shù)據庫 w 14.2 VB如何訪問數(shù)據庫如何訪問數(shù)據庫 w 14.3 用控件訪問數(shù)據庫用控件訪問數(shù)據庫 w 14.4 初識記錄集對象初識記錄集對象w 14.5 用用SQL語句生成記錄集語句生成記錄集 w 14.6 數(shù)據庫記錄的操作數(shù)據庫記錄的操作w 14.7 ADO編程模型簡介編程模型簡介 w 14.8 數(shù)據報表數(shù)據報表 結束14.1 14.1 創(chuàng)建數(shù)據庫創(chuàng)建數(shù)據庫 w 14.1.1 14.1.1 關系型數(shù)據庫的基本結構關系型數(shù)據庫的基本結構 w 14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessA
2、ccess數(shù)據庫數(shù)據庫 w 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫 返回首頁14.1.1 14.1.1 關系型數(shù)據庫的基本結構關系型數(shù)據庫的基本結構(1)(1)在討論關系型數(shù)據庫的結構之前,先來在討論關系型數(shù)據庫的結構之前,先來看一個記載學生基本信息的表格??匆粋€記載學生基本信息的表格。表表14.1 學生基本信息表學生基本信息表 14.1.1 14.1.1 關系型數(shù)據庫的基本結構關系型數(shù)據庫的基本結構(2)(2)表表14.1是一個由若干行和列組成的二維是一個由若干行和列組成的二維表格,一個關系型數(shù)據庫由多個這樣的二維表格,一個關系型數(shù)據庫由多個
3、這樣的二維表格組成。關系型數(shù)據庫使用以下術語描述表格組成。關系型數(shù)據庫使用以下術語描述數(shù)據庫中的信息:數(shù)據庫中的信息:記錄記錄(Record):):二維表中的每一行為一二維表中的每一行為一條記錄(表條記錄(表14.1中的第一行中的第一行“學號學號”、“姓姓名名”等列標題除外)。一個表中不允許含有等列標題除外)。一個表中不允許含有完全相同的兩條記錄。完全相同的兩條記錄。字段字段(Field):):二維表中的每一列為一二維表中的每一列為一個字段。列標題為字段名(必須惟一)。個字段。列標題為字段名(必須惟一)。14.1.1 14.1.1 關系型數(shù)據庫的基本結構關系型數(shù)據庫的基本結構(3)(3)數(shù)據表
4、數(shù)據表(Table):):二維表中的所有記錄二維表中的所有記錄構成數(shù)據表,簡稱為表。構成數(shù)據表,簡稱為表。數(shù)據庫數(shù)據庫(Database):):多個相互關聯(lián)但多個相互關聯(lián)但不同名的數(shù)據表構成數(shù)據庫。不同名的數(shù)據表構成數(shù)據庫。目前較流行的桌面數(shù)據庫目前較流行的桌面數(shù)據庫MS Access,大大型網絡數(shù)據庫型網絡數(shù)據庫MS SQL Server、Oracle和和Sybase等都屬于關系型數(shù)據庫。本章以等都屬于關系型數(shù)據庫。本章以MS Access數(shù)據庫為例討論數(shù)據庫為例討論VB的數(shù)據庫應用技的數(shù)據庫應用技術。術。返回首頁返回本節(jié)14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建Acces
5、sAccess數(shù)據庫數(shù)據庫(1)(1)1.啟動數(shù)據管理器啟動數(shù)據管理器 在在VB環(huán)境中執(zhí)行【外接程序】菜單中的【可環(huán)境中執(zhí)行【外接程序】菜單中的【可視化數(shù)據管理器】命令,打開可視化數(shù)據管理器視化數(shù)據管理器】命令,打開可視化數(shù)據管理器(VisData),),如如圖圖14.1所示。所示。2.建立數(shù)據庫建立數(shù)據庫 在在VisDataVisData窗口執(zhí)行菜單命令【文件】窗口執(zhí)行菜單命令【文件】|【新建】【新建】|Microsoft Access Ver 7.0 MDBMicrosoft Access Ver 7.0 MDB,打開【選擇要打開【選擇要創(chuàng)建的創(chuàng)建的Microsoft AccessMicr
6、osoft Access數(shù)據庫】對話框,在對數(shù)據庫】對話框,在對話框中輸入數(shù)據庫文件名(如話框中輸入數(shù)據庫文件名(如“Student.mdbStudent.mdb”)并保存后,并保存后,VisDataVisData窗口的工作區(qū)將出現(xiàn)如窗口的工作區(qū)將出現(xiàn)如圖圖14.214.2所示的【數(shù)據庫窗口】(此時為空庫,無表)。所示的【數(shù)據庫窗口】(此時為空庫,無表)。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據庫數(shù)據庫(2)(2)圖圖14.1 可視化數(shù)據管理器可視化數(shù)據管理器 圖圖14.2 數(shù)據庫窗口數(shù)據庫窗口 返回14.1.2 14.1.2 在在VBVB環(huán)境中
7、創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據庫數(shù)據庫(3)(3)3.建立數(shù)據表建立數(shù)據表 右擊【數(shù)據庫窗口】空白處,在彈出菜單中選右擊【數(shù)據庫窗口】空白處,在彈出菜單中選擇【新建表】菜單項,打開如擇【新建表】菜單項,打開如圖圖14.3所示的【表結所示的【表結構】對話框,輸入表名稱(如構】對話框,輸入表名稱(如“基本情況基本情況”)后,)后,單擊【添加字段】按鈕,打開單擊【添加字段】按鈕,打開如圖如圖14.4所示的【添所示的【添加字段】對話框,輸入字段名稱,設置類型和大加字段】對話框,輸入字段名稱,設置類型和大?。▋H?。▋HText類型可設置大小)。添加了所有字段后,類型可設置大?。?。添加了所有字段
8、后,單擊圖單擊圖14.3中的【生成表】按鈕即可建立數(shù)據表。中的【生成表】按鈕即可建立數(shù)據表。在一個庫中可建立多個不同名稱的表。在一個庫中可建立多個不同名稱的表。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據庫數(shù)據庫(4)(4)圖圖14.3 表結構表結構返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據庫數(shù)據庫(5)(5)圖圖14.4 添加字段添加字段 返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據庫數(shù)據庫(6)(6)4.添加索引添加索引 為數(shù)據表添加索引可以提高數(shù)據
9、檢索的速度。為數(shù)據表添加索引可以提高數(shù)據檢索的速度。在在圖圖14.314.3所示的【表結構】對話框中單擊【添加所示的【表結構】對話框中單擊【添加索引】按鈕,打開如索引】按鈕,打開如圖圖14.514.5所示的【添加索引所示的【添加索引 到到 基本情況】對話框。在【名稱】文本框中輸入索基本情況】對話框。在【名稱】文本框中輸入索引名稱(如引名稱(如“sNosNo”),),在【可用字段】列表框中在【可用字段】列表框中選擇需要為其設置索引的字段(如選擇需要為其設置索引的字段(如“學號學號”),),并設置是否為主索引或惟一索引(無重復)。并設置是否為主索引或惟一索引(無重復)。5.輸入記錄輸入記錄 雙擊【
10、數(shù)據庫窗口】中數(shù)據表名稱左側的圖標,雙擊【數(shù)據庫窗口】中數(shù)據表名稱左側的圖標,打開如打開如圖圖14.614.6所示的記錄操作窗口,可以對記錄所示的記錄操作窗口,可以對記錄進行增、刪、修改等操作。進行增、刪、修改等操作。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據庫數(shù)據庫(7)(7)圖圖14.5 添加索引添加索引 返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據庫數(shù)據庫(8)(8)圖圖14.6 記錄操作記錄操作 返回返回首頁返回本節(jié)14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫
11、建立數(shù)據庫(1 1)下面以下面以MS Access 2000為例簡介數(shù)據庫的創(chuàng)建。為例簡介數(shù)據庫的創(chuàng)建。1.1.建立數(shù)據庫建立數(shù)據庫 啟動啟動MS AccessMS Access,在對話框中選定【空在對話框中選定【空 Access Access 數(shù)據庫】單選按鈕。單擊【確定】按鈕后,在數(shù)據庫】單選按鈕。單擊【確定】按鈕后,在【文件新建數(shù)據庫】對話框中選擇保存位置并輸【文件新建數(shù)據庫】對話框中選擇保存位置并輸入文件名入文件名,然后單擊【創(chuàng)建】按鈕。然后單擊【創(chuàng)建】按鈕。2.2.建立數(shù)據表建立數(shù)據表 新建一個空白數(shù)據庫后,在新建一個空白數(shù)據庫后,在MS AccessMS Access主窗口主窗口中
12、將會出現(xiàn)如中將會出現(xiàn)如圖圖14.914.9所示的數(shù)據庫窗口。在此窗所示的數(shù)據庫窗口。在此窗口中可以管理口中可以管理AccessAccess數(shù)據庫的各組成部分。數(shù)據庫的各組成部分。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(2 2)圖圖14.9 創(chuàng)建數(shù)據表創(chuàng)建數(shù)據表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(3 3)在數(shù)據庫窗口中雙擊【使用設計器創(chuàng)建表】圖在數(shù)據庫窗口中雙擊【使用設計器創(chuàng)建表】圖標,打開如標,打開如圖圖14.1014.10所示的表設計器窗口【表所示的表設計器窗口【表1 1:表】,輸入
13、字段名稱,設置字段的數(shù)據類型、字表】,輸入字段名稱,設置字段的數(shù)據類型、字段大小及其他屬性。段大小及其他屬性。若需設置主鍵,可選定擬設為主鍵的字段,若需設置主鍵,可選定擬設為主鍵的字段,然后單擊然后單擊MS Access主窗口工具欄中的【主鍵】圖主窗口工具欄中的【主鍵】圖標標 ,此時,被設為主鍵的字段名左側會出現(xiàn)鑰,此時,被設為主鍵的字段名左側會出現(xiàn)鑰匙狀的圖標,同時,【字段屬性】中的【索引】匙狀的圖標,同時,【字段屬性】中的【索引】屬性將自動設為【有屬性將自動設為【有(無重復無重復)】?!?。全部字段設置結束后,關閉表設計器窗口,全部字段設置結束后,關閉表設計器窗口,系統(tǒng)將顯示如系統(tǒng)將顯示如圖
14、圖14.11所示的對話框,可根據提示所示的對話框,可根據提示保存新建的數(shù)據表并設置表的名稱。保存新建的數(shù)據表并設置表的名稱。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(4 4)圖圖14.10 設計表的結構設計表的結構 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(5 5)圖圖14.11 保存數(shù)據表保存數(shù)據表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(6 6)若需修改數(shù)據表的結構定義(如添加、刪除若需修改數(shù)據表的結構定義(如添加、刪除或修改字段),可在
15、如圖或修改字段),可在如圖14.12所示的數(shù)據庫窗口所示的數(shù)據庫窗口選定數(shù)據表(如選定數(shù)據表(如“基本信息基本信息”),然后單擊該窗),然后單擊該窗口工具欄中的【設計】按鈕,打開前面口工具欄中的【設計】按鈕,打開前面圖圖14.10所所示的表設計器窗口進行操作。示的表設計器窗口進行操作。圖圖14.12 修改表結構修改表結構 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(7 7)如果要添加一個新表,可再次雙擊【使用設計如果要添加一個新表,可再次雙擊【使用設計器創(chuàng)建表】圖標,或者單擊工具欄【新建】按鈕,器創(chuàng)建表】圖標,或者單擊工具欄【新建】按鈕,在如圖在如
16、圖14.13所示的【新建表】對話框中選擇【設所示的【新建表】對話框中選擇【設計視圖】后,單擊【確定】按鈕,均可打開如計視圖】后,單擊【確定】按鈕,均可打開如圖圖14.10所示的表設計器窗口。所示的表設計器窗口。圖圖14.13 添加新表添加新表 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(8 8)3.輸入記錄輸入記錄 在數(shù)據庫窗口中雙擊數(shù)據表在數(shù)據庫窗口中雙擊數(shù)據表,或者選定表后單擊工具欄或者選定表后單擊工具欄中的【打開】按鈕中的【打開】按鈕,打開如圖打開如圖14.14所示的數(shù)據表窗口所示的數(shù)據表窗口,向表向表中輸入數(shù)據。輸入結束后關閉該窗口,根據系
17、統(tǒng)提示保存中輸入數(shù)據。輸入結束后關閉該窗口,根據系統(tǒng)提示保存數(shù)據表。數(shù)據表。圖圖14.14 輸入記錄輸入記錄 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(9 9)4.建立表間關聯(lián)關系建立表間關聯(lián)關系 在一個數(shù)據庫中,一般需要用多個表存放不同在一個數(shù)據庫中,一般需要用多個表存放不同類別而又相互關聯(lián)的信息。例如,在學生信息數(shù)類別而又相互關聯(lián)的信息。例如,在學生信息數(shù)據庫中用據庫中用“基本信息基本信息”表存放學生的學號、姓名、表存放學生的學號、姓名、性別等基本情況,用性別等基本情況,用“成績成績”表存放學生的各科表存放學生的各科成績,用成績,用“課程課程
18、”表存放已開的課程。假設這三表存放已開的課程。假設這三個表中含有如個表中含有如表表14.314.3表表14.514.5所示的信息,當需所示的信息,當需要查詢某位學生的一門或幾門課程的成績時,就要查詢某位學生的一門或幾門課程的成績時,就要從上述三個表中獲取數(shù)據。假如某位學生的學要從上述三個表中獲取數(shù)據。假如某位學生的學號在最初輸入時有誤,需要修改,則必須確保號在最初輸入時有誤,需要修改,則必須確?!盎拘畔⒒拘畔ⅰ北砗捅砗汀俺煽兂煽儭北碇械谋碇械摹皩W號學號”字段字段進行同步更改。因此,應當為三個表建立必要的進行同步更改。因此,應當為三個表建立必要的關聯(lián)關系。關聯(lián)關系。14.1.3 14.1.3
19、 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(1010)注:注:*為主鍵。為主鍵。返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(1111)建立表間關聯(lián)關系的前提是兩個表各含有一個關聯(lián)字段建立表間關聯(lián)關系的前提是兩個表各含有一個關聯(lián)字段(屬性必須相同),其中一個表的關聯(lián)字段必須被設為主(屬性必須相同),其中一個表的關聯(lián)字段必須被設為主鍵或具有惟一索引,該表稱為鍵或具有惟一索引,該表稱為“主表主表”,另一個表稱為,另一個表稱為“從表從表”。下面以表下面以表14.3表表14.5為例,簡介建立數(shù)據表為例,簡介建立數(shù)據表之間關聯(lián)關系的一般
20、步驟。之間關聯(lián)關系的一般步驟。單擊單擊Microsoft Access主窗口工具欄【關系】按鈕主窗口工具欄【關系】按鈕 ,若數(shù)據庫中尚未定義任何關系,則在打開【關系】窗口的若數(shù)據庫中尚未定義任何關系,則在打開【關系】窗口的同時彈出如同時彈出如圖圖14.1514.15所示的【顯示表】對話框。所示的【顯示表】對話框。在【顯示表】對話框中選定需要建立關系的表,單擊在【顯示表】對話框中選定需要建立關系的表,單擊【添加】按鈕,然后單擊【關閉】按鈕,屏幕顯示如【添加】按鈕,然后單擊【關閉】按鈕,屏幕顯示如圖圖14.1614.16所示的【關系】窗口所示的【關系】窗口。14.1.3 14.1.3 用用MS A
21、ccessMS Access建立數(shù)據庫建立數(shù)據庫(1212)圖圖14.15 選擇擬建立關系的表選擇擬建立關系的表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(1313)圖圖14.16 【關系】窗口【關系】窗口 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(1414)在【關系】窗口將【基本信息】表中的【學號】在【關系】窗口將【基本信息】表中的【學號】字段拖放到【成績】表中的【學號】字段,彈出字段拖放到【成績】表中的【學號】字段,彈出如圖如圖14.17所示的【編輯關系】對話框。所示的【編輯關系】對話框
22、。圖圖14.17 編輯關系編輯關系 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(1515)在【編輯關系】對話框中,將【實施參照完整在【編輯關系】對話框中,將【實施參照完整性】、【級聯(lián)更新相關字段】和【級聯(lián)刪除相關性】、【級聯(lián)更新相關字段】和【級聯(lián)刪除相關記錄】三個復選框全部選中,單擊【創(chuàng)建】按鈕。記錄】三個復選框全部選中,單擊【創(chuàng)建】按鈕。重復第、步的操作,建立【成績】表中的重復第、步的操作,建立【成績】表中的【課號】字段與【課程】表中的【課號】字段的【課號】字段與【課程】表中的【課號】字段的關聯(lián)。關聯(lián)。建立表間關聯(lián)關系后的效果如建立表間關聯(lián)關系后
23、的效果如圖圖14.18所示。所示。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據庫建立數(shù)據庫(1616)圖圖14.18 表間關系表間關系 返回首頁返回本節(jié)14.2 14.2 VBVB如何訪問數(shù)據庫(如何訪問數(shù)據庫(1 1)目前,目前,Visual BasicVisual Basic訪問數(shù)據庫的主流技術是訪問數(shù)據庫的主流技術是ADOADO。ADOADO是一種基于對象的數(shù)據訪問接口,在是一種基于對象的數(shù)據訪問接口,在VBVB中中提供了利用提供了利用ADOADO訪問數(shù)據庫的兩種主要形式:訪問數(shù)據庫的兩種主要形式:ADOADO數(shù)數(shù)據控件據控件(ADODCADODC)和和A
24、DOADO對象編程模型對象編程模型(ADOADO代碼代碼)。這兩種方式可以單獨使用,也可以同時使用。這兩種方式可以單獨使用,也可以同時使用。使用使用ADOADO數(shù)據控件的優(yōu)點是代碼少,一個簡單的數(shù)據控件的優(yōu)點是代碼少,一個簡單的數(shù)據庫應用程序甚至可以不用編寫任何代碼。它的數(shù)據庫應用程序甚至可以不用編寫任何代碼。它的缺點是功能簡單,不夠靈活,不能滿足編制較復雜缺點是功能簡單,不夠靈活,不能滿足編制較復雜的數(shù)據庫應用程序的需要。的數(shù)據庫應用程序的需要。14.2 14.2 VBVB如何訪問數(shù)據庫(如何訪問數(shù)據庫(2 2)使用使用ADOADO對象編程模型的優(yōu)點是具有高度的靈活性,可以對象編程模型的優(yōu)點
25、是具有高度的靈活性,可以編制復雜的數(shù)據庫應用程序。它的缺點是代碼編寫量較大,編制復雜的數(shù)據庫應用程序。它的缺點是代碼編寫量較大,對初學者來說有一定困難。對初學者來說有一定困難。無論采用哪種方式訪問數(shù)據庫,都要經歷以下基本步驟:無論采用哪種方式訪問數(shù)據庫,都要經歷以下基本步驟:w 與數(shù)據庫建立連接,打開數(shù)據庫。與數(shù)據庫建立連接,打開數(shù)據庫。w 從數(shù)據庫中讀取數(shù)據并在適當?shù)目丶酗@示。從數(shù)據庫中讀取數(shù)據并在適當?shù)目丶酗@示。w 對所獲數(shù)據進行瀏覽以及增、刪、改等操作,并將修改對所獲數(shù)據進行瀏覽以及增、刪、改等操作,并將修改后的數(shù)據存入數(shù)據庫。后的數(shù)據存入數(shù)據庫。在后面的幾節(jié)中將以在后面的幾節(jié)中將以
26、ADOADO數(shù)據控件為主詳細介紹數(shù)據控件為主詳細介紹VBVB訪問數(shù)訪問數(shù)據庫的基本操作。據庫的基本操作。返回首頁14.3 14.3 用控件訪問數(shù)據庫用控件訪問數(shù)據庫w 14.3.1 14.3.1 ADOADO數(shù)據控件數(shù)據控件 w 14.3.2 14.3.2 數(shù)據綁定控件數(shù)據綁定控件 w 14.3.3 14.3.3 使用數(shù)據窗體向導使用數(shù)據窗體向導 返回首頁14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(1 1)1.1.加載加載ADOADO數(shù)據控件數(shù)據控件 ADO ADO數(shù)據控件屬于數(shù)據控件屬于ActiveXActiveX控件,加載后才能使用:控件,加載后才能使用:右擊工具箱,在彈出
27、菜單中選擇【部件】菜單項,打開右擊工具箱,在彈出菜單中選擇【部件】菜單項,打開【部 件】對 話 框,在【控 件】選 項 卡 的 列 表 中 選 中【部 件】對 話 框,在【控 件】選 項 卡 的 列 表 中 選 中“Mcrosoft ADO Data Control 6.0Mcrosoft ADO Data Control 6.0”前面的復選框,單擊前面的復選框,單擊【確定】按鈕?!敬_定】按鈕。2.2.連接數(shù)據庫及指定記錄源連接數(shù)據庫及指定記錄源 ADO ADO數(shù)據控件與數(shù)據庫的連接有數(shù)據控件與數(shù)據庫的連接有3 3種方式:數(shù)據鏈接文件種方式:數(shù)據鏈接文件(.(.UDL)UDL)、ODBCODB
28、C(DSNDSN)和字符串連接。與和字符串連接。與AccessAccess數(shù)據庫建立數(shù)據庫建立連接的常用方式是連接的常用方式是字符串連接字符串連接。14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(2 2)通常通過屬性頁一次完成連接數(shù)據庫和指定記錄通常通過屬性頁一次完成連接數(shù)據庫和指定記錄源的設置。操作步驟如下:源的設置。操作步驟如下:將將ADOADO數(shù)據控件數(shù)據控件(Adodc)Adodc)添加到窗體上,右擊該添加到窗體上,右擊該控件,在彈出菜單中選擇【控件,在彈出菜單中選擇【ADODCADODC屬性】菜單項,屬性】菜單項,打開如打開如圖圖14.2014.20所示的【屬性頁】對話框
29、所示的【屬性頁】對話框。在對話框【通用】選項卡中選擇【使用連接字符在對話框【通用】選項卡中選擇【使用連接字符串】,單擊【生成】按鈕,打開如串】,單擊【生成】按鈕,打開如圖圖14.2114.21所示的所示的【數(shù)據鏈接屬性】對話框【數(shù)據鏈接屬性】對話框。在【提供程序】選項卡。在【提供程序】選項卡的列表中選擇的列表中選擇“Microsoft Jet 4.0 OLE DB Microsoft Jet 4.0 OLE DB ProviderProvider”,單擊【下一步】,切換到如單擊【下一步】,切換到如圖圖14.2214.22所示的【連接】選項卡所示的【連接】選項卡。14.3.1 14.3.1 AD
30、OADO數(shù)據控件(數(shù)據控件(3 3)圖圖14.20 14.20 ADODCADODC屬性頁屬性頁 返回14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(4 4)圖圖14.21 14.21 選擇提供程序選擇提供程序返回14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(5 5)圖圖14.22 14.22 連接數(shù)據庫連接數(shù)據庫返回14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(6 6)在【連接】選項卡中單擊【在【連接】選項卡中單擊【1.1.選擇或輸入數(shù)據庫名稱】選擇或輸入數(shù)據庫名稱】輸入框右側的輸入框右側的 按鈕,在彈出的【連接按鈕,在彈出的【連接 Access Ac
31、cess 數(shù)據庫】數(shù)據庫】對話框中選擇數(shù)據庫,單擊【打開】按鈕后返回【連接】選對話框中選擇數(shù)據庫,單擊【打開】按鈕后返回【連接】選項卡,單擊【測試連接】按鈕,成功后單擊【確定】,完成項卡,單擊【測試連接】按鈕,成功后單擊【確定】,完成連接數(shù)據庫的設置,返回【屬性頁】對話框。連接數(shù)據庫的設置,返回【屬性頁】對話框。單擊【屬性頁】對話框【記錄源】選項卡單擊【屬性頁】對話框【記錄源】選項卡,顯示如顯示如圖圖14.2314.23所示的界面所示的界面,在【記錄源】選項卡中設【命令類型】為在【記錄源】選項卡中設【命令類型】為“2-2-adCmdTableadCmdTable”,”,然后在【表或存儲過程名稱
32、】下拉列表然后在【表或存儲過程名稱】下拉列表中選擇數(shù)據表。也可以設【命令類型】為中選擇數(shù)據表。也可以設【命令類型】為“1-1-adCmdTextadCmdText”或或“8-8-adCmdUnknownadCmdUnknown”,”,然后在【命令文本然后在【命令文本(SQL)SQL)】文本框中文本框中輸入輸入SQLSQL語句語句(如如圖圖14.2414.24所示所示)。最后單擊【確定】按鈕完成。最后單擊【確定】按鈕完成設置。設置。14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(7 7)圖圖14.23 14.23 用數(shù)據表作記錄源用數(shù)據表作記錄源返回14.3.1 14.3.1 ADO
33、ADO數(shù)據控件(數(shù)據控件(8 8)圖圖14.24 14.24 用用SQLSQL語句作記錄源語句作記錄源返回14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(9 9)上述操作實際上是設置了上述操作實際上是設置了ADOADO數(shù)據控件的兩個重數(shù)據控件的兩個重要屬性:要屬性:ConnectionStringConnectionString(連接字符串)屬性用于建立連接字符串)屬性用于建立與數(shù)據庫的連接。與數(shù)據庫的連接。RecordSourceRecordSource(記錄源)屬性用于指定記錄源。記錄源)屬性用于指定記錄源。除了使用屬性頁之外,也可以通過屬性窗口或程除了使用屬性頁之外,也可以通
34、過屬性窗口或程序代碼設置這兩個屬性。序代碼設置這兩個屬性。在設置在設置ADOADO數(shù)據控件與數(shù)據庫的連接時,有一點數(shù)據控件與數(shù)據庫的連接時,有一點要提請讀者注意要提請讀者注意:14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(1010)如圖如圖14.2214.22所示所示,在【數(shù)據鏈接屬性】窗口的【連接】,在【數(shù)據鏈接屬性】窗口的【連接】選項卡中指定數(shù)據庫時采用的是絕對路徑。為了保證數(shù)據庫選項卡中指定數(shù)據庫時采用的是絕對路徑。為了保證數(shù)據庫應用程序移植到其它計算機上仍可正常使用,應當采用相對應用程序移植到其它計算機上仍可正常使用,應當采用相對路徑,即在測試連接成功后刪除數(shù)據庫名稱前面
35、的所有路徑路徑,即在測試連接成功后刪除數(shù)據庫名稱前面的所有路徑(圖圖14.2214.22輸入框中的反相顯示部分輸入框中的反相顯示部分),僅保留數(shù)據庫文件名。,僅保留數(shù)據庫文件名。將數(shù)據庫文件與工程文件存放在同一文件夾下,在工程啟動將數(shù)據庫文件與工程文件存放在同一文件夾下,在工程啟動窗體的窗體的InitializeInitialize事件過程中進行路徑初始化處理:事件過程中進行路徑初始化處理:Private Sub Form_Initialize()ChDrive App.Path 設當前驅動器為工程所在驅動器設當前驅動器為工程所在驅動器 ChDir App.Path 設當前目錄為工程所在目錄設
36、當前目錄為工程所在目錄End Sub14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(1111)3.3.用代碼設置或改變記錄源用代碼設置或改變記錄源 ADO ADO數(shù)據控件一旦建立了與數(shù)據庫的連接,就可以通過設數(shù)據控件一旦建立了與數(shù)據庫的連接,就可以通過設置或改變其置或改變其RecordSourceRecordSource(記錄源)屬性訪問數(shù)據庫中的任記錄源)屬性訪問數(shù)據庫中的任何表,亦可訪問由一個或多個表中的部分或全部數(shù)據構成的何表,亦可訪問由一個或多個表中的部分或全部數(shù)據構成的記錄集。在實際應用中,常常在程序運行時用代碼設置記錄集。在實際應用中,常常在程序運行時用代碼設置Reco
37、rdSourceRecordSource屬性及其相關屬性(如屬性及其相關屬性(如CommandTypeCommandType),),從而從而使使ADOADO數(shù)據控件具有更大的靈活性。例如:數(shù)據控件具有更大的靈活性。例如:用數(shù)據表名稱作為記錄源:用數(shù)據表名稱作為記錄源:Adodc1.CommandType=adCmdTable 設置命令類型為數(shù)據表設置命令類型為數(shù)據表Adodc1.RecordSource=基本信息基本信息Adodc1.Refresh14.3.1 14.3.1 ADOADO數(shù)據控件(數(shù)據控件(1212)用用SQLSQL語句生成的記錄集作為記錄源:語句生成的記錄集作為記錄源:Ado
38、dc1.CommandType=adCmdText 設置命令類型為設置命令類型為SQL語句語句Adodc1.RecordSource=SELECT*FROM 基本信息基本信息Adodc1.Refresh 上述兩段代碼的效果相同。有關上述兩段代碼的效果相同。有關SQLSQL語言的應用語言的應用將在將在14.514.5節(jié)介紹。節(jié)介紹。注意:設置記錄源后,必須調用注意:設置記錄源后,必須調用ADOADO數(shù)據控件的數(shù)據控件的RefreshRefresh方法刷新對數(shù)據庫的訪問。方法刷新對數(shù)據庫的訪問。返回首頁返回本節(jié)14.3.2 14.3.2 數(shù)據綁定控件(數(shù)據綁定控件(1 1)ADO ADO數(shù)據控件本
39、身不能顯示數(shù)據,需通過綁定具數(shù)據控件本身不能顯示數(shù)據,需通過綁定具有顯示功能的其他控件顯示數(shù)據,這些控件稱為數(shù)有顯示功能的其他控件顯示數(shù)據,這些控件稱為數(shù)據綁定控件或數(shù)據識別據綁定控件或數(shù)據識別(感知感知)控件,如文本框、控件,如文本框、DataGridDataGrid、標簽、圖像標簽、圖像(片片)框、列表框、組合框、框、列表框、組合框、復選框等。其中最常用的是復選框等。其中最常用的是DataGridDataGrid和和文本框文本框。1.1.數(shù)據綁定控件的相關屬性數(shù)據綁定控件的相關屬性 DataSourceDataSource(數(shù)據源)屬性:指定(綁定到)數(shù)據源)屬性:指定(綁定到)ADOAD
40、O數(shù)據控件。數(shù)據控件。DataFieldDataField(數(shù)據字段)屬性:綁定到特定字段。數(shù)據字段)屬性:綁定到特定字段。綁定后只要移動指針綁定后只要移動指針,自動將修改內容寫入數(shù)據庫。自動將修改內容寫入數(shù)據庫。14.3.2 14.3.2 數(shù)據綁定控件(數(shù)據綁定控件(2 2)2.2.在屬性窗口設置綁定控件屬性在屬性窗口設置綁定控件屬性 在屬性窗口將數(shù)據綁定控件的在屬性窗口將數(shù)據綁定控件的DataSourceDataSource屬性設屬性設為為ADOADO數(shù)據控件(如數(shù)據控件(如Adodc1Adodc1)。)。如果是單字段顯示如果是單字段顯示控件(如文本框等),還需將控件的控件(如文本框等),
41、還需將控件的DataFieldDataField屬屬性設置為特定字段。性設置為特定字段。DataGridDataGrid控件屬于多字段顯示控件屬于多字段顯示控件,沒有控件,沒有DataFieldDataField屬性。屬性。【例【例14.114.1】用】用ADOADO數(shù)據控件和數(shù)據控件和DataGridDataGrid控件創(chuàng)建一控件創(chuàng)建一個簡單的數(shù)據訪問窗體,顯示個簡單的數(shù)據訪問窗體,顯示14.1.314.1.3節(jié)創(chuàng)建的節(jié)創(chuàng)建的Student2K.mdbStudent2K.mdb數(shù)據庫中數(shù)據庫中“基本信息基本信息”表的內容。表的內容。14.3.2 14.3.2 數(shù)據綁定控件(數(shù)據綁定控件(3
42、3)右擊工具箱,在彈出菜單中選擇【部件】命令,右擊工具箱,在彈出菜單中選擇【部件】命令,在 對 話 框【控 件】選 項 卡 的 列 表 中 選 中在 對 話 框【控 件】選 項 卡 的 列 表 中 選 中“Microsoft ADO Data Control 6.0Microsoft ADO Data Control 6.0”和和“Microsoft DataGrid 6.0Microsoft DataGrid 6.0”,單擊【確定】。選單擊【確定】。選擇工具箱中新增加的擇工具箱中新增加的ADOADO數(shù)據控件和數(shù)據控件和DataGridDataGrid控件控件 ,將其添加到窗體上,默認名稱分別
43、為將其添加到窗體上,默認名稱分別為Adodc1Adodc1和和DataGrid1DataGrid1。按按14.3.114.3.1小節(jié)所述步驟建立小節(jié)所述步驟建立Adodc1Adodc1與與Student2K.mdbStudent2K.mdb數(shù)據庫的連接,并設數(shù)據庫的連接,并設Adodc1Adodc1的記錄的記錄源為源為“基本信息基本信息”表。將表。將DataGrid1DataGrid1控件的控件的DataSourceDataSource屬性設為屬性設為Adodc1Adodc1。程序運行效果如圖程序運行效果如圖14.2514.25所示。所示。14.3.2 14.3.2 數(shù)據綁定控件(數(shù)據綁定控件
44、(4 4)圖圖14.25 14.25 使用使用DataGridDataGrid控件控件14.3.2 14.3.2 數(shù)據綁定控件(數(shù)據綁定控件(5 5)3.3.用代碼設置綁定控件屬性用代碼設置綁定控件屬性 程序運行時可以動態(tài)地設置數(shù)據綁定控件的屬性。程序運行時可以動態(tài)地設置數(shù)據綁定控件的屬性。例如:例如:Set Text1.DataSource=Adodc1Text1.DataField=姓名姓名Set DataGrid1.DataSource=Adodc1 說明:說明:DataSourceDataSource是對象類型的屬性,必須用是對象類型的屬性,必須用SetSet語句為其賦值。語句為其賦值
45、。14.3.2 14.3.2 數(shù)據綁定控件(數(shù)據綁定控件(6 6)4.4.不用綁定方法如何顯示和處理數(shù)據不用綁定方法如何顯示和處理數(shù)據 不使用綁定的方法處理數(shù)據是指不對數(shù)據顯示控不使用綁定的方法處理數(shù)據是指不對數(shù)據顯示控件的件的DataSourceDataSource和和DataFieldDataField屬性進行設置,而是屬性進行設置,而是通過代碼將當前記錄某個字段的值顯示在控件(如通過代碼將當前記錄某個字段的值顯示在控件(如文本框)中。這種方法比較靈活,缺點是代碼編寫文本框)中。這種方法比較靈活,缺點是代碼編寫量較大,其中涉及到記錄集對象的操作。量較大,其中涉及到記錄集對象的操作。(1 1
46、)字段內容的顯示)字段內容的顯示控件屬性控件屬性=記錄集記錄集(“字段字段”)例如:例如:Text1.Text=Adodc1.Recordset(學號學號)Text2.Text=Adodc1.Recordset(姓名姓名)14.3.2 14.3.2 數(shù)據綁定控件(數(shù)據綁定控件(7 7)每當記錄指針移動時均需對控件屬性重新賦值。若需要顯每當記錄指針移動時均需對控件屬性重新賦值。若需要顯示的字段較多,可以編制一個自定義過程用于記錄指針移動示的字段較多,可以編制一個自定義過程用于記錄指針移動時顯示各字段內容。時顯示各字段內容。(2 2)為字段賦值)為字段賦值記錄集記錄集(“字段字段”)=)=控件屬性
47、控件屬性例如:例如:Adodc1.Recordset(學號學號)=Text1.TextAdodc1.Recordset(姓名姓名)=Text2.TextAdodc1.Recordset.Update 說明:為字段賦值后,應調用記錄集的說明:為字段賦值后,應調用記錄集的UpdateUpdate方法更新數(shù)方法更新數(shù)據庫。據庫。返回首頁返回本節(jié)14.3.3 14.3.3 使用數(shù)據窗體向導(使用數(shù)據窗體向導(1 1)使用使用“數(shù)據窗體向導數(shù)據窗體向導”可以快速創(chuàng)建一個數(shù)據訪問窗體。可以快速創(chuàng)建一個數(shù)據訪問窗體。執(zhí)行【工程】菜單中【添加窗體】命令執(zhí)行【工程】菜單中【添加窗體】命令,打開如打開如圖圖14.
48、2614.26所所示的對話框,在【新建】選項卡中選擇【示的對話框,在【新建】選項卡中選擇【VBVB數(shù)據窗體向導】,數(shù)據窗體向導】,單擊【打開】按鈕后將會出現(xiàn)向導的第一個對話框。單擊【打開】按鈕后將會出現(xiàn)向導的第一個對話框。如果是創(chuàng)建單表訪問窗體,數(shù)據窗體向導將有七個步驟:如果是創(chuàng)建單表訪問窗體,數(shù)據窗體向導將有七個步驟:【介紹】、【數(shù)據庫類型】、【數(shù)據庫】、【窗體【介紹】、【數(shù)據庫類型】、【數(shù)據庫】、【窗體(FormForm)】、【)】、【記錄源】、【控件選擇】和【完成】,可根記錄源】、【控件選擇】和【完成】,可根據向導提示操作。據向導提示操作。圖圖14.2714.27是利用數(shù)據窗體向導創(chuàng)建的
49、數(shù)據窗體,數(shù)據庫為是利用數(shù)據窗體向導創(chuàng)建的數(shù)據窗體,數(shù)據庫為Student2K.mdbStudent2K.mdb,記錄源為記錄源為“基本信息基本信息”表中的所有字段。表中的所有字段。向導中的其他步驟均采用默認設置。向導中的其他步驟均采用默認設置。14.3.3 14.3.3 使用數(shù)據窗體向導(使用數(shù)據窗體向導(2 2)圖圖14.26 14.26 啟動數(shù)據窗體向導啟動數(shù)據窗體向導返回14.3.3 14.3.3 使用數(shù)據窗體向導(使用數(shù)據窗體向導(3 3)圖圖14.27 14.27 用數(shù)據窗體向導創(chuàng)建的數(shù)據窗體用數(shù)據窗體向導創(chuàng)建的數(shù)據窗體返回返回首頁返回本節(jié)14.4 14.4 初識記錄集對象(初識記
50、錄集對象(1 1)無論是使用無論是使用ADOADO數(shù)據控件數(shù)據控件,還是使用還是使用ADOADO對象編程對象編程模型,都會涉及到記錄集對象。因此模型,都會涉及到記錄集對象。因此,在進一步討在進一步討論數(shù)據庫操作之前論數(shù)據庫操作之前,有必要初步了解一下記錄集對有必要初步了解一下記錄集對象。象。請看下面來自學生數(shù)據庫的幾個集合:請看下面來自學生數(shù)據庫的幾個集合:取取“基本信息基本信息”表中所有學生的記錄構成一個集表中所有學生的記錄構成一個集合;合;取取“基本信息基本信息”表中所有男生的記錄構成一個集表中所有男生的記錄構成一個集合;合;取取“基本信息基本信息”表中張三的學號和姓名,根據其表中張三的學
51、號和姓名,根據其學號取學號取“成績成績”表(含學號、課號和分數(shù)三個字段)表(含學號、課號和分數(shù)三個字段)中該學生的各科成績構成一個集合。中該學生的各科成績構成一個集合。14.4 14.4 初識記錄集對象(初識記錄集對象(2 2)以上幾個集合都是以上幾個集合都是“記錄的集合記錄的集合”,由此得出以下概念:,由此得出以下概念:將數(shù)據庫中一個或多個表中的部分或全部數(shù)據構成一個將數(shù)據庫中一個或多個表中的部分或全部數(shù)據構成一個“記 錄 的 集 合記 錄 的 集 合”,這 個 集 合 就 稱 為,這 個 集 合 就 稱 為“記 錄 集記 錄 集”(RecordsetRecordset)。)。記錄集由行(記
52、錄)和列(字段)構成。記錄集由行(記錄)和列(字段)構成。若將記錄集看作一個對象,這個對象就是記錄集對象。記若將記錄集看作一個對象,這個對象就是記錄集對象。記錄集對象具有特定的屬性、方法和事件。錄集對象具有特定的屬性、方法和事件。ADO ADO數(shù)據控件的數(shù)據控件的RecordsetRecordset屬性代表屬于本控件的記錄集屬性代表屬于本控件的記錄集對象。對象。記錄集對象是記錄集對象是ADOADO中的一個功能強大的對象,對數(shù)據庫的中的一個功能強大的對象,對數(shù)據庫的絕大部分操作,如記錄指針的移動,記錄的查找、添加、絕大部分操作,如記錄指針的移動,記錄的查找、添加、刪除和修改等,都是針對記錄集對象
53、進行的。刪除和修改等,都是針對記錄集對象進行的。返回首頁14.5 14.5 用用SQLSQL語句生成記錄集語句生成記錄集w 14.5.1 14.5.1 最簡單的最簡單的SQLSQL語句語句 w 14.5.2 14.5.2 限定記錄集篩選條件限定記錄集篩選條件 w 14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語句語句 w 14.5.4 14.5.4 記錄排序記錄排序 w 14.5.5 14.5.5 記錄分組記錄分組 w 14.5.6 14.5.6 過濾重復記錄過濾重復記錄 返回首頁14.5.1 14.5.1 最簡單的最簡單的SQLSQL語句語句 (1 1)1.
54、1.最簡單的查詢語句最簡單的查詢語句 下面的下面的SQLSQL語句是最簡單的查詢形式,生成的記語句是最簡單的查詢形式,生成的記錄集包含整個表的全部數(shù)據:錄集包含整個表的全部數(shù)據:SELECT*FROM 基本信息基本信息 其中其中“*”指表中所有字段指表中所有字段(列列)。FROMFROM子句用于子句用于指定數(shù)據表。指定數(shù)據表。2.2.SELECTSELECT語句的基本語法語句的基本語法 在實際應用中,往往需要從一個或多個表中選在實際應用中,往往需要從一個或多個表中選擇符合特定條件的記錄構成記錄集,因此應對擇符合特定條件的記錄構成記錄集,因此應對SELECTSELECT語句的語法有一定的了解。以
55、下是語句的語法有一定的了解。以下是SELECTSELECT語語句的基本語法。句的基本語法。14.5.1 14.5.1 最簡單的最簡單的SQLSQL語句語句 (2 2)SELECT SELECT*|字段列表字段列表 FROM FROM 表名表名 WHERE WHERE 查詢條件查詢條件 GROUP BY GROUP BY 分組字段分組字段 HAVING HAVING 分組條件分組條件 ORDER BY ORDER BY 排排序字段序字段 ASC|DESCASC|DESC說明說明:*|字段列表字段列表:“*”表示所有字段;表示所有字段;“字段列字段列表表”指定字段,多個字段間用逗號分隔,來自不同指
56、定字段,多個字段間用逗號分隔,來自不同表的同名字段前須加表的名稱和圓點表的同名字段前須加表的名稱和圓點。FROM FROM子句:指定表。若指定多個表子句:指定表。若指定多個表,用逗號分隔。用逗號分隔。WHERE WHERE子句:指定選擇記錄的條件。子句:指定選擇記錄的條件。14.5.1 14.5.1 最簡單的最簡單的SQLSQL語句語句 (3 3)GROUP BYGROUP BY及及HAVINGHAVING子句:分組過濾,將分組字段子句:分組過濾,將分組字段中同值記錄合并為一條記錄。中同值記錄合并為一條記錄。ORDER BYORDER BY:排序。排序。ASCASC為升序為升序(默認默認);D
57、ESCDESC為降為降序。序?!纠纠?4.214.2】選擇】選擇“基本信息基本信息”表中的表中的“學號學號”和和“姓名姓名”字段,字段,“成績成績”表中的表中的“課號課號”和和“分數(shù)分數(shù)”字段構成記錄集。字段構成記錄集。SELECT 基本信息基本信息.學號學號,姓名姓名,課號課號,分數(shù)分數(shù) FROM 基本信息基本信息,成績成績 WHERE 基本信息基本信息.學號學號=成成績績.學號學號 返回首頁返回本節(jié)14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(1 1)在在SELECTSELECT語句的各子句中,語句的各子句中,WHEREWHERE子句使用頻率子句使用頻率最高。該子句
58、指明查詢的條件。在最高。該子句指明查詢的條件。在WHEREWHERE子句中可子句中可使用各種關系使用各種關系(比較比較)運算符表示篩選記錄的條件。運算符表示篩選記錄的條件。FROM 選表選表 表 1 表 2 表 i SELECT 選字段選字段 字段 1 字段 2 字段 j 生成生成 記錄集記錄集 記錄 1 記錄 2 記錄 k WHERE 限定條件限定條件 圖14.28 用SQL語句生成記錄集 14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(2 2)【例【例14.314.3】選擇】選擇“基本信息基本信息”表中所有男生構成表中所有男生構成記錄集:記錄集:SELECT*FROM
59、基本信息基本信息 WHERE 性別性別=男男 【例【例14.414.4】取】取“基本信息基本信息”表中張三的學號和姓表中張三的學號和姓名,根據其學號取名,根據其學號取“成績成績”表中該學生的各科成績表中該學生的各科成績構成記錄集:構成記錄集:SELECT 基本信息基本信息.學號學號,姓名姓名,課號課號,分數(shù)分數(shù) FROM 基本信基本信息息,成績成績 WHERE 基本信息基本信息.學號學號=成績成績.學號學號 AND 姓名姓名=張三張三 在在WHEREWHERE子句中使用子句中使用LikeLike運算符可實現(xiàn)模糊查詢。運算符可實現(xiàn)模糊查詢。SQLSQL語句中語句中LikeLike運算符的通配符是
60、運算符的通配符是“%”“%”,可代表任,可代表任何字符,字符數(shù)不限。何字符,字符數(shù)不限。14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(3 3)【例【例14.514.5】用】用LikeLike運算符進行模糊查詢。運算符進行模糊查詢。查詢所有姓查詢所有姓“張張”的學生:的學生:SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like 張張%查詢所有姓名中含有查詢所有姓名中含有“小小”字的學生:字的學生:SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like%小小%查詢姓名最后一個字為查詢姓名最后一個字為“剛剛”的所有學生:的所有學生:SELE
61、CT*FROM 基本信息基本信息 WHERE 姓名姓名 like%剛剛返回首頁返回本節(jié)14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語句語句(1)(1)在程序代碼中,在程序代碼中,SQLSQL語句必須以字符串形式提供。例如:語句必須以字符串形式提供。例如:Adodc1.RecordSource=SELECT*FROM 基本信息基本信息 如果如果SQLSQL語句中含有字符串常量,必須將字符串常量放在語句中含有字符串常量,必須將字符串常量放在一對單引號中。一對單引號中?!纠纠?4.614.6】在】在SQLSQL語句中引用字符串常量。語句中引用字符串常量。Dim
62、strSQL As StringstrSQL=SELECT*FROM 基本信息基本信息 WHERE 性別性別=男男Adodc1.RecordSource=strSQL 如果如果SQLSQL語句中引用了語句中引用了StringString型變量或其他控件的字符串型變量或其他控件的字符串類型的屬性(如文本框的類型的屬性(如文本框的TextText屬性),應當采用下面的引屬性),應當采用下面的引用形式(注意單引號的位置):用形式(注意單引號的位置):.&.&字符串變量或控件屬性字符串變量或控件屬性&.&.14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語句語句(2)(
63、2)【例【例14.714.7】在】在SQLSQL語句中引用字符串變量。語句中引用字符串變量。Dim strSQL As String,strSex As StringstrSex=男男strSQL=SELECT*FROM 基本信息基本信息 WHERE 性別性別=_&strSex&Adodc1.RecordSource=strSQL【例例14.814.8】在】在SQLSQL語句中引用控件的字符串類型的屬性。語句中引用控件的字符串類型的屬性。Dim strSQL As StringText1.Text=張張strSQL=SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like _&
64、Text1.Text&%Adodc1.RecordSource=strSQL14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語句語句(3)(3)如果如果SQLSQL語句中引用了非字符串類型的變量或控語句中引用了非字符串類型的變量或控件屬性,不使用單引號。件屬性,不使用單引號?!纠纠?4.914.9】在】在SQLSQL語句中引用非字符串類型的變量。語句中引用非字符串類型的變量。Dim strSQL As String,intGrade As IntegerintGrade=60strSQL=SELECT*FROM 成績成績 WHERE 分數(shù)分數(shù)=_&intGra
65、de&AND 課程課程=英語英語Adodc1.RecordSource=strSQL返回首頁返回本節(jié)14.5.4 14.5.4 記錄排序記錄排序 用用ORDER BYORDER BY子句(子句(ASCASC為升序,為升序,DESCDESC為降序)為降序)對記錄排序。例如:對記錄排序。例如:SELECT*FROM 基本信息基本信息 ORDER BY 學號學號 ASCSELECT*FROM 基本信息基本信息 ORDER BY 姓名姓名 DESC返回首頁返回本節(jié)14.5.5 14.5.5 記錄分組記錄分組 用用GROUP BYGROUP BY子句將指定字段中數(shù)值相等的多條記錄子句將指定字段中數(shù)值相等
66、的多條記錄合并為一條記錄??捎煤喜橐粭l記錄??捎肏AVINGHAVING子句附加條件。子句附加條件?!纠纠?4.1014.10】以】以“班級班級”作為分組字段,查詢各班作為分組字段,查詢各班女生人數(shù)。女生人數(shù)。SELECT 班級班級,Count(*)AS 女生女生 FROM 基本基本情況情況 GROUP BY 班級班級,性別性別 HAVING 性別性別=女女說明:上面的語句中說明:上面的語句中Count(Count(*)表示統(tǒng)計記錄總數(shù),表示統(tǒng)計記錄總數(shù),ASAS子句表示存放統(tǒng)計結果的臨時字段別名。其他子句表示存放統(tǒng)計結果的臨時字段別名。其他SQLSQL函數(shù)還有函數(shù)還有SumSum、AvgAvg、MaxMax和和MinMin等。等。返回首頁返回本節(jié)14.5.6 14.5.6 過濾重復記錄(過濾重復記錄(1 1)過濾重復記錄是指忽略字段值相同的重復記錄。過濾重復記錄是指忽略字段值相同的重復記錄。例如,假定學籍表中含有例如,假定學籍表中含有400400名學生的信息,這些名學生的信息,這些學生來自學生來自1010個班級,現(xiàn)在要查詢學籍表中的個班級,現(xiàn)在要查詢學籍表中的“班級班級”字段生成
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。