欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

visual basic 第14章 數(shù)據(jù)庫應(yīng)用基礎(chǔ)

上傳人:少*** 文檔編號(hào):119634351 上傳時(shí)間:2022-07-15 格式:PPT 頁數(shù):127 大?。?03.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
visual basic 第14章 數(shù)據(jù)庫應(yīng)用基礎(chǔ)_第1頁
第1頁 / 共127頁
visual basic 第14章 數(shù)據(jù)庫應(yīng)用基礎(chǔ)_第2頁
第2頁 / 共127頁
visual basic 第14章 數(shù)據(jù)庫應(yīng)用基礎(chǔ)_第3頁
第3頁 / 共127頁

下載文檔到電腦,查找使用更方便

16 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《visual basic 第14章 數(shù)據(jù)庫應(yīng)用基礎(chǔ)》由會(huì)員分享,可在線閱讀,更多相關(guān)《visual basic 第14章 數(shù)據(jù)庫應(yīng)用基礎(chǔ)(127頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第第1414章章 數(shù)據(jù)庫應(yīng)用基礎(chǔ)數(shù)據(jù)庫應(yīng)用基礎(chǔ)w 14.1 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫 w 14.2 VB如何訪問數(shù)據(jù)庫如何訪問數(shù)據(jù)庫 w 14.3 用控件訪問數(shù)據(jù)庫用控件訪問數(shù)據(jù)庫 w 14.4 初識(shí)記錄集對(duì)象初識(shí)記錄集對(duì)象w 14.5 用用SQL語句生成記錄集語句生成記錄集 w 14.6 數(shù)據(jù)庫記錄的操作數(shù)據(jù)庫記錄的操作w 14.7 ADO編程模型簡(jiǎn)介編程模型簡(jiǎn)介 w 14.8 數(shù)據(jù)報(bào)表數(shù)據(jù)報(bào)表 結(jié)束14.1 14.1 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫 w 14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu) w 14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessA

2、ccess數(shù)據(jù)庫數(shù)據(jù)庫 w 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫 返回首頁14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)(1)(1)在討論關(guān)系型數(shù)據(jù)庫的結(jié)構(gòu)之前,先來在討論關(guān)系型數(shù)據(jù)庫的結(jié)構(gòu)之前,先來看一個(gè)記載學(xué)生基本信息的表格。看一個(gè)記載學(xué)生基本信息的表格。表表14.1 學(xué)生基本信息表學(xué)生基本信息表 14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)(2)(2)表表14.1是一個(gè)由若干行和列組成的二維是一個(gè)由若干行和列組成的二維表格,一個(gè)關(guān)系型數(shù)據(jù)庫由多個(gè)這樣的二維表格,一個(gè)關(guān)系型數(shù)據(jù)庫由多個(gè)

3、這樣的二維表格組成。關(guān)系型數(shù)據(jù)庫使用以下術(shù)語描述表格組成。關(guān)系型數(shù)據(jù)庫使用以下術(shù)語描述數(shù)據(jù)庫中的信息:數(shù)據(jù)庫中的信息:記錄記錄(Record):):二維表中的每一行為一二維表中的每一行為一條記錄(表?xiàng)l記錄(表14.1中的第一行中的第一行“學(xué)號(hào)學(xué)號(hào)”、“姓姓名名”等列標(biāo)題除外)。一個(gè)表中不允許含有等列標(biāo)題除外)。一個(gè)表中不允許含有完全相同的兩條記錄。完全相同的兩條記錄。字段字段(Field):):二維表中的每一列為一二維表中的每一列為一個(gè)字段。列標(biāo)題為字段名(必須惟一)。個(gè)字段。列標(biāo)題為字段名(必須惟一)。14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)(3)(3)數(shù)據(jù)表

4、數(shù)據(jù)表(Table):):二維表中的所有記錄二維表中的所有記錄構(gòu)成數(shù)據(jù)表,簡(jiǎn)稱為表。構(gòu)成數(shù)據(jù)表,簡(jiǎn)稱為表。數(shù)據(jù)庫數(shù)據(jù)庫(Database):):多個(gè)相互關(guān)聯(lián)但多個(gè)相互關(guān)聯(lián)但不同名的數(shù)據(jù)表構(gòu)成數(shù)據(jù)庫。不同名的數(shù)據(jù)表構(gòu)成數(shù)據(jù)庫。目前較流行的桌面數(shù)據(jù)庫目前較流行的桌面數(shù)據(jù)庫MS Access,大大型網(wǎng)絡(luò)數(shù)據(jù)庫型網(wǎng)絡(luò)數(shù)據(jù)庫MS SQL Server、Oracle和和Sybase等都屬于關(guān)系型數(shù)據(jù)庫。本章以等都屬于關(guān)系型數(shù)據(jù)庫。本章以MS Access數(shù)據(jù)庫為例討論數(shù)據(jù)庫為例討論VB的數(shù)據(jù)庫應(yīng)用技的數(shù)據(jù)庫應(yīng)用技術(shù)。術(shù)。返回首頁返回本節(jié)14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建Acces

5、sAccess數(shù)據(jù)庫數(shù)據(jù)庫(1)(1)1.啟動(dòng)數(shù)據(jù)管理器啟動(dòng)數(shù)據(jù)管理器 在在VB環(huán)境中執(zhí)行【外接程序】菜單中的【可環(huán)境中執(zhí)行【外接程序】菜單中的【可視化數(shù)據(jù)管理器】命令,打開可視化數(shù)據(jù)管理器視化數(shù)據(jù)管理器】命令,打開可視化數(shù)據(jù)管理器(VisData),),如如圖圖14.1所示。所示。2.建立數(shù)據(jù)庫建立數(shù)據(jù)庫 在在VisDataVisData窗口執(zhí)行菜單命令【文件】窗口執(zhí)行菜單命令【文件】|【新建】【新建】|Microsoft Access Ver 7.0 MDBMicrosoft Access Ver 7.0 MDB,打開【選擇要打開【選擇要?jiǎng)?chuàng)建的創(chuàng)建的Microsoft AccessMicr

6、osoft Access數(shù)據(jù)庫】對(duì)話框,在對(duì)數(shù)據(jù)庫】對(duì)話框,在對(duì)話框中輸入數(shù)據(jù)庫文件名(如話框中輸入數(shù)據(jù)庫文件名(如“Student.mdbStudent.mdb”)并保存后,并保存后,VisDataVisData窗口的工作區(qū)將出現(xiàn)如窗口的工作區(qū)將出現(xiàn)如圖圖14.214.2所示的【數(shù)據(jù)庫窗口】(此時(shí)為空庫,無表)。所示的【數(shù)據(jù)庫窗口】(此時(shí)為空庫,無表)。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(2)(2)圖圖14.1 可視化數(shù)據(jù)管理器可視化數(shù)據(jù)管理器 圖圖14.2 數(shù)據(jù)庫窗口數(shù)據(jù)庫窗口 返回14.1.2 14.1.2 在在VBVB環(huán)境中

7、創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(3)(3)3.建立數(shù)據(jù)表建立數(shù)據(jù)表 右擊【數(shù)據(jù)庫窗口】空白處,在彈出菜單中選右擊【數(shù)據(jù)庫窗口】空白處,在彈出菜單中選擇【新建表】菜單項(xiàng),打開如擇【新建表】菜單項(xiàng),打開如圖圖14.3所示的【表結(jié)所示的【表結(jié)構(gòu)】對(duì)話框,輸入表名稱(如構(gòu)】對(duì)話框,輸入表名稱(如“基本情況基本情況”)后,)后,單擊【添加字段】按鈕,打開單擊【添加字段】按鈕,打開如圖如圖14.4所示的【添所示的【添加字段】對(duì)話框,輸入字段名稱,設(shè)置類型和大加字段】對(duì)話框,輸入字段名稱,設(shè)置類型和大小(僅?。▋HText類型可設(shè)置大小)。添加了所有字段后,類型可設(shè)置大?。L砑恿怂凶侄?/p>

8、后,單擊圖單擊圖14.3中的【生成表】按鈕即可建立數(shù)據(jù)表。中的【生成表】按鈕即可建立數(shù)據(jù)表。在一個(gè)庫中可建立多個(gè)不同名稱的表。在一個(gè)庫中可建立多個(gè)不同名稱的表。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(4)(4)圖圖14.3 表結(jié)構(gòu)表結(jié)構(gòu)返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(5)(5)圖圖14.4 添加字段添加字段 返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(6)(6)4.添加索引添加索引 為數(shù)據(jù)表添加索引可以提高數(shù)據(jù)

9、檢索的速度。為數(shù)據(jù)表添加索引可以提高數(shù)據(jù)檢索的速度。在在圖圖14.314.3所示的【表結(jié)構(gòu)】對(duì)話框中單擊【添加所示的【表結(jié)構(gòu)】對(duì)話框中單擊【添加索引】按鈕,打開如索引】按鈕,打開如圖圖14.514.5所示的【添加索引所示的【添加索引 到到 基本情況】對(duì)話框。在【名稱】文本框中輸入索基本情況】對(duì)話框。在【名稱】文本框中輸入索引名稱(如引名稱(如“sNosNo”),),在【可用字段】列表框中在【可用字段】列表框中選擇需要為其設(shè)置索引的字段(如選擇需要為其設(shè)置索引的字段(如“學(xué)號(hào)學(xué)號(hào)”),),并設(shè)置是否為主索引或惟一索引(無重復(fù))。并設(shè)置是否為主索引或惟一索引(無重復(fù))。5.輸入記錄輸入記錄 雙擊【

10、數(shù)據(jù)庫窗口】中數(shù)據(jù)表名稱左側(cè)的圖標(biāo),雙擊【數(shù)據(jù)庫窗口】中數(shù)據(jù)表名稱左側(cè)的圖標(biāo),打開如打開如圖圖14.614.6所示的記錄操作窗口,可以對(duì)記錄所示的記錄操作窗口,可以對(duì)記錄進(jìn)行增、刪、修改等操作。進(jìn)行增、刪、修改等操作。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(7)(7)圖圖14.5 添加索引添加索引 返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(8)(8)圖圖14.6 記錄操作記錄操作 返回返回首頁返回本節(jié)14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫

11、建立數(shù)據(jù)庫(1 1)下面以下面以MS Access 2000為例簡(jiǎn)介數(shù)據(jù)庫的創(chuàng)建。為例簡(jiǎn)介數(shù)據(jù)庫的創(chuàng)建。1.1.建立數(shù)據(jù)庫建立數(shù)據(jù)庫 啟動(dòng)啟動(dòng)MS AccessMS Access,在對(duì)話框中選定【空在對(duì)話框中選定【空 Access Access 數(shù)據(jù)庫】單選按鈕。單擊【確定】按鈕后,在數(shù)據(jù)庫】單選按鈕。單擊【確定】按鈕后,在【文件新建數(shù)據(jù)庫】對(duì)話框中選擇保存位置并輸【文件新建數(shù)據(jù)庫】對(duì)話框中選擇保存位置并輸入文件名入文件名,然后單擊【創(chuàng)建】按鈕。然后單擊【創(chuàng)建】按鈕。2.2.建立數(shù)據(jù)表建立數(shù)據(jù)表 新建一個(gè)空白數(shù)據(jù)庫后,在新建一個(gè)空白數(shù)據(jù)庫后,在MS AccessMS Access主窗口主窗口中

12、將會(huì)出現(xiàn)如中將會(huì)出現(xiàn)如圖圖14.914.9所示的數(shù)據(jù)庫窗口。在此窗所示的數(shù)據(jù)庫窗口。在此窗口中可以管理口中可以管理AccessAccess數(shù)據(jù)庫的各組成部分。數(shù)據(jù)庫的各組成部分。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(2 2)圖圖14.9 創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(3 3)在數(shù)據(jù)庫窗口中雙擊【使用設(shè)計(jì)器創(chuàng)建表】圖在數(shù)據(jù)庫窗口中雙擊【使用設(shè)計(jì)器創(chuàng)建表】圖標(biāo),打開如標(biāo),打開如圖圖14.1014.10所示的表設(shè)計(jì)器窗口【表所示的表設(shè)計(jì)器窗口【表1 1:表】,輸入

13、字段名稱,設(shè)置字段的數(shù)據(jù)類型、字表】,輸入字段名稱,設(shè)置字段的數(shù)據(jù)類型、字段大小及其他屬性。段大小及其他屬性。若需設(shè)置主鍵,可選定擬設(shè)為主鍵的字段,若需設(shè)置主鍵,可選定擬設(shè)為主鍵的字段,然后單擊然后單擊MS Access主窗口工具欄中的【主鍵】圖主窗口工具欄中的【主鍵】圖標(biāo)標(biāo) ,此時(shí),被設(shè)為主鍵的字段名左側(cè)會(huì)出現(xiàn)鑰,此時(shí),被設(shè)為主鍵的字段名左側(cè)會(huì)出現(xiàn)鑰匙狀的圖標(biāo),同時(shí),【字段屬性】中的【索引】匙狀的圖標(biāo),同時(shí),【字段屬性】中的【索引】屬性將自動(dòng)設(shè)為【有屬性將自動(dòng)設(shè)為【有(無重復(fù)無重復(fù))】?!俊H孔侄卧O(shè)置結(jié)束后,關(guān)閉表設(shè)計(jì)器窗口,全部字段設(shè)置結(jié)束后,關(guān)閉表設(shè)計(jì)器窗口,系統(tǒng)將顯示如系統(tǒng)將顯示如圖

14、圖14.11所示的對(duì)話框,可根據(jù)提示所示的對(duì)話框,可根據(jù)提示保存新建的數(shù)據(jù)表并設(shè)置表的名稱。保存新建的數(shù)據(jù)表并設(shè)置表的名稱。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(4 4)圖圖14.10 設(shè)計(jì)表的結(jié)構(gòu)設(shè)計(jì)表的結(jié)構(gòu) 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(5 5)圖圖14.11 保存數(shù)據(jù)表保存數(shù)據(jù)表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(6 6)若需修改數(shù)據(jù)表的結(jié)構(gòu)定義(如添加、刪除若需修改數(shù)據(jù)表的結(jié)構(gòu)定義(如添加、刪除或修改字段),可在

15、如圖或修改字段),可在如圖14.12所示的數(shù)據(jù)庫窗口所示的數(shù)據(jù)庫窗口選定數(shù)據(jù)表(如選定數(shù)據(jù)表(如“基本信息基本信息”),然后單擊該窗),然后單擊該窗口工具欄中的【設(shè)計(jì)】按鈕,打開前面口工具欄中的【設(shè)計(jì)】按鈕,打開前面圖圖14.10所所示的表設(shè)計(jì)器窗口進(jìn)行操作。示的表設(shè)計(jì)器窗口進(jìn)行操作。圖圖14.12 修改表結(jié)構(gòu)修改表結(jié)構(gòu) 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(7 7)如果要添加一個(gè)新表,可再次雙擊【使用設(shè)計(jì)如果要添加一個(gè)新表,可再次雙擊【使用設(shè)計(jì)器創(chuàng)建表】圖標(biāo),或者單擊工具欄【新建】按鈕,器創(chuàng)建表】圖標(biāo),或者單擊工具欄【新建】按鈕,在如圖在如

16、圖14.13所示的【新建表】對(duì)話框中選擇【設(shè)所示的【新建表】對(duì)話框中選擇【設(shè)計(jì)視圖】后,單擊【確定】按鈕,均可打開如計(jì)視圖】后,單擊【確定】按鈕,均可打開如圖圖14.10所示的表設(shè)計(jì)器窗口。所示的表設(shè)計(jì)器窗口。圖圖14.13 添加新表添加新表 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(8 8)3.輸入記錄輸入記錄 在數(shù)據(jù)庫窗口中雙擊數(shù)據(jù)表在數(shù)據(jù)庫窗口中雙擊數(shù)據(jù)表,或者選定表后單擊工具欄或者選定表后單擊工具欄中的【打開】按鈕中的【打開】按鈕,打開如圖打開如圖14.14所示的數(shù)據(jù)表窗口所示的數(shù)據(jù)表窗口,向表向表中輸入數(shù)據(jù)。輸入結(jié)束后關(guān)閉該窗口,根據(jù)系

17、統(tǒng)提示保存中輸入數(shù)據(jù)。輸入結(jié)束后關(guān)閉該窗口,根據(jù)系統(tǒng)提示保存數(shù)據(jù)表。數(shù)據(jù)表。圖圖14.14 輸入記錄輸入記錄 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(9 9)4.建立表間關(guān)聯(lián)關(guān)系建立表間關(guān)聯(lián)關(guān)系 在一個(gè)數(shù)據(jù)庫中,一般需要用多個(gè)表存放不同在一個(gè)數(shù)據(jù)庫中,一般需要用多個(gè)表存放不同類別而又相互關(guān)聯(lián)的信息。例如,在學(xué)生信息數(shù)類別而又相互關(guān)聯(lián)的信息。例如,在學(xué)生信息數(shù)據(jù)庫中用據(jù)庫中用“基本信息基本信息”表存放學(xué)生的學(xué)號(hào)、姓名、表存放學(xué)生的學(xué)號(hào)、姓名、性別等基本情況,用性別等基本情況,用“成績(jī)成績(jī)”表存放學(xué)生的各科表存放學(xué)生的各科成績(jī),用成績(jī),用“課程課程

18、”表存放已開的課程。假設(shè)這三表存放已開的課程。假設(shè)這三個(gè)表中含有如個(gè)表中含有如表表14.314.3表表14.514.5所示的信息,當(dāng)需所示的信息,當(dāng)需要查詢某位學(xué)生的一門或幾門課程的成績(jī)時(shí),就要查詢某位學(xué)生的一門或幾門課程的成績(jī)時(shí),就要從上述三個(gè)表中獲取數(shù)據(jù)。假如某位學(xué)生的學(xué)要從上述三個(gè)表中獲取數(shù)據(jù)。假如某位學(xué)生的學(xué)號(hào)在最初輸入時(shí)有誤,需要修改,則必須確保號(hào)在最初輸入時(shí)有誤,需要修改,則必須確?!盎拘畔⒒拘畔ⅰ北砗捅砗汀俺煽?jī)成績(jī)”表中的表中的“學(xué)號(hào)學(xué)號(hào)”字段字段進(jìn)行同步更改。因此,應(yīng)當(dāng)為三個(gè)表建立必要的進(jìn)行同步更改。因此,應(yīng)當(dāng)為三個(gè)表建立必要的關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系。14.1.3 14.1.3

19、 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1010)注:注:*為主鍵。為主鍵。返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1111)建立表間關(guān)聯(lián)關(guān)系的前提是兩個(gè)表各含有一個(gè)關(guān)聯(lián)字段建立表間關(guān)聯(lián)關(guān)系的前提是兩個(gè)表各含有一個(gè)關(guān)聯(lián)字段(屬性必須相同),其中一個(gè)表的關(guān)聯(lián)字段必須被設(shè)為主(屬性必須相同),其中一個(gè)表的關(guān)聯(lián)字段必須被設(shè)為主鍵或具有惟一索引,該表稱為鍵或具有惟一索引,該表稱為“主表主表”,另一個(gè)表稱為,另一個(gè)表稱為“從表從表”。下面以表下面以表14.3表表14.5為例,簡(jiǎn)介建立數(shù)據(jù)表為例,簡(jiǎn)介建立數(shù)據(jù)表之間關(guān)聯(lián)關(guān)系的一般

20、步驟。之間關(guān)聯(lián)關(guān)系的一般步驟。單擊單擊Microsoft Access主窗口工具欄【關(guān)系】按鈕主窗口工具欄【關(guān)系】按鈕 ,若數(shù)據(jù)庫中尚未定義任何關(guān)系,則在打開【關(guān)系】窗口的若數(shù)據(jù)庫中尚未定義任何關(guān)系,則在打開【關(guān)系】窗口的同時(shí)彈出如同時(shí)彈出如圖圖14.1514.15所示的【顯示表】對(duì)話框。所示的【顯示表】對(duì)話框。在【顯示表】對(duì)話框中選定需要建立關(guān)系的表,單擊在【顯示表】對(duì)話框中選定需要建立關(guān)系的表,單擊【添加】按鈕,然后單擊【關(guān)閉】按鈕,屏幕顯示如【添加】按鈕,然后單擊【關(guān)閉】按鈕,屏幕顯示如圖圖14.1614.16所示的【關(guān)系】窗口所示的【關(guān)系】窗口。14.1.3 14.1.3 用用MS A

21、ccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1212)圖圖14.15 選擇擬建立關(guān)系的表選擇擬建立關(guān)系的表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1313)圖圖14.16 【關(guān)系】窗口【關(guān)系】窗口 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1414)在【關(guān)系】窗口將【基本信息】表中的【學(xué)號(hào)】在【關(guān)系】窗口將【基本信息】表中的【學(xué)號(hào)】字段拖放到【成績(jī)】表中的【學(xué)號(hào)】字段,彈出字段拖放到【成績(jī)】表中的【學(xué)號(hào)】字段,彈出如圖如圖14.17所示的【編輯關(guān)系】對(duì)話框。所示的【編輯關(guān)系】對(duì)話框

22、。圖圖14.17 編輯關(guān)系編輯關(guān)系 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1515)在【編輯關(guān)系】對(duì)話框中,將【實(shí)施參照完整在【編輯關(guān)系】對(duì)話框中,將【實(shí)施參照完整性】、【級(jí)聯(lián)更新相關(guān)字段】和【級(jí)聯(lián)刪除相關(guān)性】、【級(jí)聯(lián)更新相關(guān)字段】和【級(jí)聯(lián)刪除相關(guān)記錄】三個(gè)復(fù)選框全部選中,單擊【創(chuàng)建】按鈕。記錄】三個(gè)復(fù)選框全部選中,單擊【創(chuàng)建】按鈕。重復(fù)第、步的操作,建立【成績(jī)】表中的重復(fù)第、步的操作,建立【成績(jī)】表中的【課號(hào)】字段與【課程】表中的【課號(hào)】字段的【課號(hào)】字段與【課程】表中的【課號(hào)】字段的關(guān)聯(lián)。關(guān)聯(lián)。建立表間關(guān)聯(lián)關(guān)系后的效果如建立表間關(guān)聯(lián)關(guān)系后

23、的效果如圖圖14.18所示。所示。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1616)圖圖14.18 表間關(guān)系表間關(guān)系 返回首頁返回本節(jié)14.2 14.2 VBVB如何訪問數(shù)據(jù)庫(如何訪問數(shù)據(jù)庫(1 1)目前,目前,Visual BasicVisual Basic訪問數(shù)據(jù)庫的主流技術(shù)是訪問數(shù)據(jù)庫的主流技術(shù)是ADOADO。ADOADO是一種基于對(duì)象的數(shù)據(jù)訪問接口,在是一種基于對(duì)象的數(shù)據(jù)訪問接口,在VBVB中中提供了利用提供了利用ADOADO訪問數(shù)據(jù)庫的兩種主要形式:訪問數(shù)據(jù)庫的兩種主要形式:ADOADO數(shù)數(shù)據(jù)控件據(jù)控件(ADODCADODC)和和A

24、DOADO對(duì)象編程模型對(duì)象編程模型(ADOADO代碼代碼)。這兩種方式可以單獨(dú)使用,也可以同時(shí)使用。這兩種方式可以單獨(dú)使用,也可以同時(shí)使用。使用使用ADOADO數(shù)據(jù)控件的優(yōu)點(diǎn)是代碼少,一個(gè)簡(jiǎn)單的數(shù)據(jù)控件的優(yōu)點(diǎn)是代碼少,一個(gè)簡(jiǎn)單的數(shù)據(jù)庫應(yīng)用程序甚至可以不用編寫任何代碼。它的數(shù)據(jù)庫應(yīng)用程序甚至可以不用編寫任何代碼。它的缺點(diǎn)是功能簡(jiǎn)單,不夠靈活,不能滿足編制較復(fù)雜缺點(diǎn)是功能簡(jiǎn)單,不夠靈活,不能滿足編制較復(fù)雜的數(shù)據(jù)庫應(yīng)用程序的需要。的數(shù)據(jù)庫應(yīng)用程序的需要。14.2 14.2 VBVB如何訪問數(shù)據(jù)庫(如何訪問數(shù)據(jù)庫(2 2)使用使用ADOADO對(duì)象編程模型的優(yōu)點(diǎn)是具有高度的靈活性,可以對(duì)象編程模型的優(yōu)點(diǎn)

25、是具有高度的靈活性,可以編制復(fù)雜的數(shù)據(jù)庫應(yīng)用程序。它的缺點(diǎn)是代碼編寫量較大,編制復(fù)雜的數(shù)據(jù)庫應(yīng)用程序。它的缺點(diǎn)是代碼編寫量較大,對(duì)初學(xué)者來說有一定困難。對(duì)初學(xué)者來說有一定困難。無論采用哪種方式訪問數(shù)據(jù)庫,都要經(jīng)歷以下基本步驟:無論采用哪種方式訪問數(shù)據(jù)庫,都要經(jīng)歷以下基本步驟:w 與數(shù)據(jù)庫建立連接,打開數(shù)據(jù)庫。與數(shù)據(jù)庫建立連接,打開數(shù)據(jù)庫。w 從數(shù)據(jù)庫中讀取數(shù)據(jù)并在適當(dāng)?shù)目丶酗@示。從數(shù)據(jù)庫中讀取數(shù)據(jù)并在適當(dāng)?shù)目丶酗@示。w 對(duì)所獲數(shù)據(jù)進(jìn)行瀏覽以及增、刪、改等操作,并將修改對(duì)所獲數(shù)據(jù)進(jìn)行瀏覽以及增、刪、改等操作,并將修改后的數(shù)據(jù)存入數(shù)據(jù)庫。后的數(shù)據(jù)存入數(shù)據(jù)庫。在后面的幾節(jié)中將以在后面的幾節(jié)中將以

26、ADOADO數(shù)據(jù)控件為主詳細(xì)介紹數(shù)據(jù)控件為主詳細(xì)介紹VBVB訪問數(shù)訪問數(shù)據(jù)庫的基本操作。據(jù)庫的基本操作。返回首頁14.3 14.3 用控件訪問數(shù)據(jù)庫用控件訪問數(shù)據(jù)庫w 14.3.1 14.3.1 ADOADO數(shù)據(jù)控件數(shù)據(jù)控件 w 14.3.2 14.3.2 數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件 w 14.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)褂脭?shù)據(jù)窗體向?qū)?返回首頁14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1 1)1.1.加載加載ADOADO數(shù)據(jù)控件數(shù)據(jù)控件 ADO ADO數(shù)據(jù)控件屬于數(shù)據(jù)控件屬于ActiveXActiveX控件,加載后才能使用:控件,加載后才能使用:右擊工具箱,在彈出

27、菜單中選擇【部件】菜單項(xiàng),打開右擊工具箱,在彈出菜單中選擇【部件】菜單項(xiàng),打開【部 件】對(duì) 話 框,在【控 件】選 項(xiàng) 卡 的 列 表 中 選 中【部 件】對(duì) 話 框,在【控 件】選 項(xiàng) 卡 的 列 表 中 選 中“Mcrosoft ADO Data Control 6.0Mcrosoft ADO Data Control 6.0”前面的復(fù)選框,單擊前面的復(fù)選框,單擊【確定】按鈕?!敬_定】按鈕。2.2.連接數(shù)據(jù)庫及指定記錄源連接數(shù)據(jù)庫及指定記錄源 ADO ADO數(shù)據(jù)控件與數(shù)據(jù)庫的連接有數(shù)據(jù)控件與數(shù)據(jù)庫的連接有3 3種方式:數(shù)據(jù)鏈接文件種方式:數(shù)據(jù)鏈接文件(.(.UDL)UDL)、ODBCODB

28、C(DSNDSN)和字符串連接。與和字符串連接。與AccessAccess數(shù)據(jù)庫建立數(shù)據(jù)庫建立連接的常用方式是連接的常用方式是字符串連接字符串連接。14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(2 2)通常通過屬性頁一次完成連接數(shù)據(jù)庫和指定記錄通常通過屬性頁一次完成連接數(shù)據(jù)庫和指定記錄源的設(shè)置。操作步驟如下:源的設(shè)置。操作步驟如下:將將ADOADO數(shù)據(jù)控件數(shù)據(jù)控件(Adodc)Adodc)添加到窗體上,右擊該添加到窗體上,右擊該控件,在彈出菜單中選擇【控件,在彈出菜單中選擇【ADODCADODC屬性】菜單項(xiàng),屬性】菜單項(xiàng),打開如打開如圖圖14.2014.20所示的【屬性頁】對(duì)話框

29、所示的【屬性頁】對(duì)話框。在對(duì)話框【通用】選項(xiàng)卡中選擇【使用連接字符在對(duì)話框【通用】選項(xiàng)卡中選擇【使用連接字符串】,單擊【生成】按鈕,打開如串】,單擊【生成】按鈕,打開如圖圖14.2114.21所示的所示的【數(shù)據(jù)鏈接屬性】對(duì)話框【數(shù)據(jù)鏈接屬性】對(duì)話框。在【提供程序】選項(xiàng)卡。在【提供程序】選項(xiàng)卡的列表中選擇的列表中選擇“Microsoft Jet 4.0 OLE DB Microsoft Jet 4.0 OLE DB ProviderProvider”,單擊【下一步】,切換到如單擊【下一步】,切換到如圖圖14.2214.22所示的【連接】選項(xiàng)卡所示的【連接】選項(xiàng)卡。14.3.1 14.3.1 AD

30、OADO數(shù)據(jù)控件(數(shù)據(jù)控件(3 3)圖圖14.20 14.20 ADODCADODC屬性頁屬性頁 返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(4 4)圖圖14.21 14.21 選擇提供程序選擇提供程序返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(5 5)圖圖14.22 14.22 連接數(shù)據(jù)庫連接數(shù)據(jù)庫返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(6 6)在【連接】選項(xiàng)卡中單擊【在【連接】選項(xiàng)卡中單擊【1.1.選擇或輸入數(shù)據(jù)庫名稱】選擇或輸入數(shù)據(jù)庫名稱】輸入框右側(cè)的輸入框右側(cè)的 按鈕,在彈出的【連接按鈕,在彈出的【連接 Access Ac

31、cess 數(shù)據(jù)庫】數(shù)據(jù)庫】對(duì)話框中選擇數(shù)據(jù)庫,單擊【打開】按鈕后返回【連接】選對(duì)話框中選擇數(shù)據(jù)庫,單擊【打開】按鈕后返回【連接】選項(xiàng)卡,單擊【測(cè)試連接】按鈕,成功后單擊【確定】,完成項(xiàng)卡,單擊【測(cè)試連接】按鈕,成功后單擊【確定】,完成連接數(shù)據(jù)庫的設(shè)置,返回【屬性頁】對(duì)話框。連接數(shù)據(jù)庫的設(shè)置,返回【屬性頁】對(duì)話框。單擊【屬性頁】對(duì)話框【記錄源】選項(xiàng)卡單擊【屬性頁】對(duì)話框【記錄源】選項(xiàng)卡,顯示如顯示如圖圖14.2314.23所示的界面所示的界面,在【記錄源】選項(xiàng)卡中設(shè)【命令類型】為在【記錄源】選項(xiàng)卡中設(shè)【命令類型】為“2-2-adCmdTableadCmdTable”,”,然后在【表或存儲(chǔ)過程名稱

32、】下拉列表然后在【表或存儲(chǔ)過程名稱】下拉列表中選擇數(shù)據(jù)表。也可以設(shè)【命令類型】為中選擇數(shù)據(jù)表。也可以設(shè)【命令類型】為“1-1-adCmdTextadCmdText”或或“8-8-adCmdUnknownadCmdUnknown”,”,然后在【命令文本然后在【命令文本(SQL)SQL)】文本框中文本框中輸入輸入SQLSQL語句語句(如如圖圖14.2414.24所示所示)。最后單擊【確定】按鈕完成。最后單擊【確定】按鈕完成設(shè)置。設(shè)置。14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(7 7)圖圖14.23 14.23 用數(shù)據(jù)表作記錄源用數(shù)據(jù)表作記錄源返回14.3.1 14.3.1 ADO

33、ADO數(shù)據(jù)控件(數(shù)據(jù)控件(8 8)圖圖14.24 14.24 用用SQLSQL語句作記錄源語句作記錄源返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(9 9)上述操作實(shí)際上是設(shè)置了上述操作實(shí)際上是設(shè)置了ADOADO數(shù)據(jù)控件的兩個(gè)重?cái)?shù)據(jù)控件的兩個(gè)重要屬性:要屬性:ConnectionStringConnectionString(連接字符串)屬性用于建立連接字符串)屬性用于建立與數(shù)據(jù)庫的連接。與數(shù)據(jù)庫的連接。RecordSourceRecordSource(記錄源)屬性用于指定記錄源。記錄源)屬性用于指定記錄源。除了使用屬性頁之外,也可以通過屬性窗口或程除了使用屬性頁之外,也可以通

34、過屬性窗口或程序代碼設(shè)置這兩個(gè)屬性。序代碼設(shè)置這兩個(gè)屬性。在設(shè)置在設(shè)置ADOADO數(shù)據(jù)控件與數(shù)據(jù)庫的連接時(shí),有一點(diǎn)數(shù)據(jù)控件與數(shù)據(jù)庫的連接時(shí),有一點(diǎn)要提請(qǐng)讀者注意要提請(qǐng)讀者注意:14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1010)如圖如圖14.2214.22所示所示,在【數(shù)據(jù)鏈接屬性】窗口的【連接】,在【數(shù)據(jù)鏈接屬性】窗口的【連接】選項(xiàng)卡中指定數(shù)據(jù)庫時(shí)采用的是絕對(duì)路徑。為了保證數(shù)據(jù)庫選項(xiàng)卡中指定數(shù)據(jù)庫時(shí)采用的是絕對(duì)路徑。為了保證數(shù)據(jù)庫應(yīng)用程序移植到其它計(jì)算機(jī)上仍可正常使用,應(yīng)當(dāng)采用相對(duì)應(yīng)用程序移植到其它計(jì)算機(jī)上仍可正常使用,應(yīng)當(dāng)采用相對(duì)路徑,即在測(cè)試連接成功后刪除數(shù)據(jù)庫名稱前面

35、的所有路徑路徑,即在測(cè)試連接成功后刪除數(shù)據(jù)庫名稱前面的所有路徑(圖圖14.2214.22輸入框中的反相顯示部分輸入框中的反相顯示部分),僅保留數(shù)據(jù)庫文件名。,僅保留數(shù)據(jù)庫文件名。將數(shù)據(jù)庫文件與工程文件存放在同一文件夾下,在工程啟動(dòng)將數(shù)據(jù)庫文件與工程文件存放在同一文件夾下,在工程啟動(dòng)窗體的窗體的InitializeInitialize事件過程中進(jìn)行路徑初始化處理:事件過程中進(jìn)行路徑初始化處理:Private Sub Form_Initialize()ChDrive App.Path 設(shè)當(dāng)前驅(qū)動(dòng)器為工程所在驅(qū)動(dòng)器設(shè)當(dāng)前驅(qū)動(dòng)器為工程所在驅(qū)動(dòng)器 ChDir App.Path 設(shè)當(dāng)前目錄為工程所在目錄設(shè)

36、當(dāng)前目錄為工程所在目錄End Sub14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1111)3.3.用代碼設(shè)置或改變記錄源用代碼設(shè)置或改變記錄源 ADO ADO數(shù)據(jù)控件一旦建立了與數(shù)據(jù)庫的連接,就可以通過設(shè)數(shù)據(jù)控件一旦建立了與數(shù)據(jù)庫的連接,就可以通過設(shè)置或改變其置或改變其RecordSourceRecordSource(記錄源)屬性訪問數(shù)據(jù)庫中的任記錄源)屬性訪問數(shù)據(jù)庫中的任何表,亦可訪問由一個(gè)或多個(gè)表中的部分或全部數(shù)據(jù)構(gòu)成的何表,亦可訪問由一個(gè)或多個(gè)表中的部分或全部數(shù)據(jù)構(gòu)成的記錄集。在實(shí)際應(yīng)用中,常常在程序運(yùn)行時(shí)用代碼設(shè)置記錄集。在實(shí)際應(yīng)用中,常常在程序運(yùn)行時(shí)用代碼設(shè)置Reco

37、rdSourceRecordSource屬性及其相關(guān)屬性(如屬性及其相關(guān)屬性(如CommandTypeCommandType),),從而從而使使ADOADO數(shù)據(jù)控件具有更大的靈活性。例如:數(shù)據(jù)控件具有更大的靈活性。例如:用數(shù)據(jù)表名稱作為記錄源:用數(shù)據(jù)表名稱作為記錄源:Adodc1.CommandType=adCmdTable 設(shè)置命令類型為數(shù)據(jù)表設(shè)置命令類型為數(shù)據(jù)表Adodc1.RecordSource=基本信息基本信息Adodc1.Refresh14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1212)用用SQLSQL語句生成的記錄集作為記錄源:語句生成的記錄集作為記錄源:Ado

38、dc1.CommandType=adCmdText 設(shè)置命令類型為設(shè)置命令類型為SQL語句語句Adodc1.RecordSource=SELECT*FROM 基本信息基本信息Adodc1.Refresh 上述兩段代碼的效果相同。有關(guān)上述兩段代碼的效果相同。有關(guān)SQLSQL語言的應(yīng)用語言的應(yīng)用將在將在14.514.5節(jié)介紹。節(jié)介紹。注意:設(shè)置記錄源后,必須調(diào)用注意:設(shè)置記錄源后,必須調(diào)用ADOADO數(shù)據(jù)控件的數(shù)據(jù)控件的RefreshRefresh方法刷新對(duì)數(shù)據(jù)庫的訪問。方法刷新對(duì)數(shù)據(jù)庫的訪問。返回首頁返回本節(jié)14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(1 1)ADO ADO數(shù)據(jù)控件本

39、身不能顯示數(shù)據(jù),需通過綁定具數(shù)據(jù)控件本身不能顯示數(shù)據(jù),需通過綁定具有顯示功能的其他控件顯示數(shù)據(jù),這些控件稱為數(shù)有顯示功能的其他控件顯示數(shù)據(jù),這些控件稱為數(shù)據(jù)綁定控件或數(shù)據(jù)識(shí)別據(jù)綁定控件或數(shù)據(jù)識(shí)別(感知感知)控件,如文本框、控件,如文本框、DataGridDataGrid、標(biāo)簽、圖像標(biāo)簽、圖像(片片)框、列表框、組合框、框、列表框、組合框、復(fù)選框等。其中最常用的是復(fù)選框等。其中最常用的是DataGridDataGrid和和文本框文本框。1.1.數(shù)據(jù)綁定控件的相關(guān)屬性數(shù)據(jù)綁定控件的相關(guān)屬性 DataSourceDataSource(數(shù)據(jù)源)屬性:指定(綁定到)數(shù)據(jù)源)屬性:指定(綁定到)ADOAD

40、O數(shù)據(jù)控件。數(shù)據(jù)控件。DataFieldDataField(數(shù)據(jù)字段)屬性:綁定到特定字段。數(shù)據(jù)字段)屬性:綁定到特定字段。綁定后只要移動(dòng)指針綁定后只要移動(dòng)指針,自動(dòng)將修改內(nèi)容寫入數(shù)據(jù)庫。自動(dòng)將修改內(nèi)容寫入數(shù)據(jù)庫。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(2 2)2.2.在屬性窗口設(shè)置綁定控件屬性在屬性窗口設(shè)置綁定控件屬性 在屬性窗口將數(shù)據(jù)綁定控件的在屬性窗口將數(shù)據(jù)綁定控件的DataSourceDataSource屬性設(shè)屬性設(shè)為為ADOADO數(shù)據(jù)控件(如數(shù)據(jù)控件(如Adodc1Adodc1)。)。如果是單字段顯示如果是單字段顯示控件(如文本框等),還需將控件的控件(如文本框等),

41、還需將控件的DataFieldDataField屬屬性設(shè)置為特定字段。性設(shè)置為特定字段。DataGridDataGrid控件屬于多字段顯示控件屬于多字段顯示控件,沒有控件,沒有DataFieldDataField屬性。屬性?!纠纠?4.114.1】用】用ADOADO數(shù)據(jù)控件和數(shù)據(jù)控件和DataGridDataGrid控件創(chuàng)建一控件創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)據(jù)訪問窗體,顯示個(gè)簡(jiǎn)單的數(shù)據(jù)訪問窗體,顯示14.1.314.1.3節(jié)創(chuàng)建的節(jié)創(chuàng)建的Student2K.mdbStudent2K.mdb數(shù)據(jù)庫中數(shù)據(jù)庫中“基本信息基本信息”表的內(nèi)容。表的內(nèi)容。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(3

42、3)右擊工具箱,在彈出菜單中選擇【部件】命令,右擊工具箱,在彈出菜單中選擇【部件】命令,在 對(duì) 話 框【控 件】選 項(xiàng) 卡 的 列 表 中 選 中在 對(duì) 話 框【控 件】選 項(xiàng) 卡 的 列 表 中 選 中“Microsoft ADO Data Control 6.0Microsoft ADO Data Control 6.0”和和“Microsoft DataGrid 6.0Microsoft DataGrid 6.0”,單擊【確定】。選單擊【確定】。選擇工具箱中新增加的擇工具箱中新增加的ADOADO數(shù)據(jù)控件和數(shù)據(jù)控件和DataGridDataGrid控件控件 ,將其添加到窗體上,默認(rèn)名稱分別

43、為將其添加到窗體上,默認(rèn)名稱分別為Adodc1Adodc1和和DataGrid1DataGrid1。按按14.3.114.3.1小節(jié)所述步驟建立小節(jié)所述步驟建立Adodc1Adodc1與與Student2K.mdbStudent2K.mdb數(shù)據(jù)庫的連接,并設(shè)數(shù)據(jù)庫的連接,并設(shè)Adodc1Adodc1的記錄的記錄源為源為“基本信息基本信息”表。將表。將DataGrid1DataGrid1控件的控件的DataSourceDataSource屬性設(shè)為屬性設(shè)為Adodc1Adodc1。程序運(yùn)行效果如圖程序運(yùn)行效果如圖14.2514.25所示。所示。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件

44、(4 4)圖圖14.25 14.25 使用使用DataGridDataGrid控件控件14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(5 5)3.3.用代碼設(shè)置綁定控件屬性用代碼設(shè)置綁定控件屬性 程序運(yùn)行時(shí)可以動(dòng)態(tài)地設(shè)置數(shù)據(jù)綁定控件的屬性。程序運(yùn)行時(shí)可以動(dòng)態(tài)地設(shè)置數(shù)據(jù)綁定控件的屬性。例如:例如:Set Text1.DataSource=Adodc1Text1.DataField=姓名姓名Set DataGrid1.DataSource=Adodc1 說明:說明:DataSourceDataSource是對(duì)象類型的屬性,必須用是對(duì)象類型的屬性,必須用SetSet語句為其賦值。語句為其賦值

45、。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(6 6)4.4.不用綁定方法如何顯示和處理數(shù)據(jù)不用綁定方法如何顯示和處理數(shù)據(jù) 不使用綁定的方法處理數(shù)據(jù)是指不對(duì)數(shù)據(jù)顯示控不使用綁定的方法處理數(shù)據(jù)是指不對(duì)數(shù)據(jù)顯示控件的件的DataSourceDataSource和和DataFieldDataField屬性進(jìn)行設(shè)置,而是屬性進(jìn)行設(shè)置,而是通過代碼將當(dāng)前記錄某個(gè)字段的值顯示在控件(如通過代碼將當(dāng)前記錄某個(gè)字段的值顯示在控件(如文本框)中。這種方法比較靈活,缺點(diǎn)是代碼編寫文本框)中。這種方法比較靈活,缺點(diǎn)是代碼編寫量較大,其中涉及到記錄集對(duì)象的操作。量較大,其中涉及到記錄集對(duì)象的操作。(1 1

46、)字段內(nèi)容的顯示)字段內(nèi)容的顯示控件屬性控件屬性=記錄集記錄集(“字段字段”)例如:例如:Text1.Text=Adodc1.Recordset(學(xué)號(hào)學(xué)號(hào))Text2.Text=Adodc1.Recordset(姓名姓名)14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(7 7)每當(dāng)記錄指針移動(dòng)時(shí)均需對(duì)控件屬性重新賦值。若需要顯每當(dāng)記錄指針移動(dòng)時(shí)均需對(duì)控件屬性重新賦值。若需要顯示的字段較多,可以編制一個(gè)自定義過程用于記錄指針移動(dòng)示的字段較多,可以編制一個(gè)自定義過程用于記錄指針移動(dòng)時(shí)顯示各字段內(nèi)容。時(shí)顯示各字段內(nèi)容。(2 2)為字段賦值)為字段賦值記錄集記錄集(“字段字段”)=)=控件屬性

47、控件屬性例如:例如:Adodc1.Recordset(學(xué)號(hào)學(xué)號(hào))=Text1.TextAdodc1.Recordset(姓名姓名)=Text2.TextAdodc1.Recordset.Update 說明:為字段賦值后,應(yīng)調(diào)用記錄集的說明:為字段賦值后,應(yīng)調(diào)用記錄集的UpdateUpdate方法更新數(shù)方法更新數(shù)據(jù)庫。據(jù)庫。返回首頁返回本節(jié)14.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)Вㄊ褂脭?shù)據(jù)窗體向?qū)В? 1)使用使用“數(shù)據(jù)窗體向?qū)?shù)據(jù)窗體向?qū)А笨梢钥焖賱?chuàng)建一個(gè)數(shù)據(jù)訪問窗體??梢钥焖賱?chuàng)建一個(gè)數(shù)據(jù)訪問窗體。執(zhí)行【工程】菜單中【添加窗體】命令執(zhí)行【工程】菜單中【添加窗體】命令,打開如打開如圖圖14.

48、2614.26所所示的對(duì)話框,在【新建】選項(xiàng)卡中選擇【示的對(duì)話框,在【新建】選項(xiàng)卡中選擇【VBVB數(shù)據(jù)窗體向?qū)А浚瑪?shù)據(jù)窗體向?qū)А?,單擊【打開】按鈕后將會(huì)出現(xiàn)向?qū)У牡谝粋€(gè)對(duì)話框。單擊【打開】按鈕后將會(huì)出現(xiàn)向?qū)У牡谝粋€(gè)對(duì)話框。如果是創(chuàng)建單表訪問窗體,數(shù)據(jù)窗體向?qū)⒂衅邆€(gè)步驟:如果是創(chuàng)建單表訪問窗體,數(shù)據(jù)窗體向?qū)⒂衅邆€(gè)步驟:【介紹】、【數(shù)據(jù)庫類型】、【數(shù)據(jù)庫】、【窗體【介紹】、【數(shù)據(jù)庫類型】、【數(shù)據(jù)庫】、【窗體(FormForm)】、【)】、【記錄源】、【控件選擇】和【完成】,可根記錄源】、【控件選擇】和【完成】,可根據(jù)向?qū)崾静僮鳌?jù)向?qū)崾静僮?。圖圖14.2714.27是利用數(shù)據(jù)窗體向?qū)?chuàng)建的

49、數(shù)據(jù)窗體,數(shù)據(jù)庫為是利用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體,數(shù)據(jù)庫為Student2K.mdbStudent2K.mdb,記錄源為記錄源為“基本信息基本信息”表中的所有字段。表中的所有字段。向?qū)е械钠渌襟E均采用默認(rèn)設(shè)置。向?qū)е械钠渌襟E均采用默認(rèn)設(shè)置。14.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)Вㄊ褂脭?shù)據(jù)窗體向?qū)В? 2)圖圖14.26 14.26 啟動(dòng)數(shù)據(jù)窗體向?qū)?dòng)數(shù)據(jù)窗體向?qū)Х祷?4.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)Вㄊ褂脭?shù)據(jù)窗體向?qū)В? 3)圖圖14.27 14.27 用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體返回返回首頁返回本節(jié)14.4 14.4 初識(shí)記錄集對(duì)象(初識(shí)記

50、錄集對(duì)象(1 1)無論是使用無論是使用ADOADO數(shù)據(jù)控件數(shù)據(jù)控件,還是使用還是使用ADOADO對(duì)象編程對(duì)象編程模型,都會(huì)涉及到記錄集對(duì)象。因此模型,都會(huì)涉及到記錄集對(duì)象。因此,在進(jìn)一步討在進(jìn)一步討論數(shù)據(jù)庫操作之前論數(shù)據(jù)庫操作之前,有必要初步了解一下記錄集對(duì)有必要初步了解一下記錄集對(duì)象。象。請(qǐng)看下面來自學(xué)生數(shù)據(jù)庫的幾個(gè)集合:請(qǐng)看下面來自學(xué)生數(shù)據(jù)庫的幾個(gè)集合:取取“基本信息基本信息”表中所有學(xué)生的記錄構(gòu)成一個(gè)集表中所有學(xué)生的記錄構(gòu)成一個(gè)集合;合;取取“基本信息基本信息”表中所有男生的記錄構(gòu)成一個(gè)集表中所有男生的記錄構(gòu)成一個(gè)集合;合;取取“基本信息基本信息”表中張三的學(xué)號(hào)和姓名,根據(jù)其表中張三的學(xué)

51、號(hào)和姓名,根據(jù)其學(xué)號(hào)取學(xué)號(hào)取“成績(jī)成績(jī)”表(含學(xué)號(hào)、課號(hào)和分?jǐn)?shù)三個(gè)字段)表(含學(xué)號(hào)、課號(hào)和分?jǐn)?shù)三個(gè)字段)中該學(xué)生的各科成績(jī)構(gòu)成一個(gè)集合。中該學(xué)生的各科成績(jī)構(gòu)成一個(gè)集合。14.4 14.4 初識(shí)記錄集對(duì)象(初識(shí)記錄集對(duì)象(2 2)以上幾個(gè)集合都是以上幾個(gè)集合都是“記錄的集合記錄的集合”,由此得出以下概念:,由此得出以下概念:將數(shù)據(jù)庫中一個(gè)或多個(gè)表中的部分或全部數(shù)據(jù)構(gòu)成一個(gè)將數(shù)據(jù)庫中一個(gè)或多個(gè)表中的部分或全部數(shù)據(jù)構(gòu)成一個(gè)“記 錄 的 集 合記 錄 的 集 合”,這 個(gè) 集 合 就 稱 為,這 個(gè) 集 合 就 稱 為“記 錄 集記 錄 集”(RecordsetRecordset)。)。記錄集由行(記

52、錄)和列(字段)構(gòu)成。記錄集由行(記錄)和列(字段)構(gòu)成。若將記錄集看作一個(gè)對(duì)象,這個(gè)對(duì)象就是記錄集對(duì)象。記若將記錄集看作一個(gè)對(duì)象,這個(gè)對(duì)象就是記錄集對(duì)象。記錄集對(duì)象具有特定的屬性、方法和事件。錄集對(duì)象具有特定的屬性、方法和事件。ADO ADO數(shù)據(jù)控件的數(shù)據(jù)控件的RecordsetRecordset屬性代表屬于本控件的記錄集屬性代表屬于本控件的記錄集對(duì)象。對(duì)象。記錄集對(duì)象是記錄集對(duì)象是ADOADO中的一個(gè)功能強(qiáng)大的對(duì)象,對(duì)數(shù)據(jù)庫的中的一個(gè)功能強(qiáng)大的對(duì)象,對(duì)數(shù)據(jù)庫的絕大部分操作,如記錄指針的移動(dòng),記錄的查找、添加、絕大部分操作,如記錄指針的移動(dòng),記錄的查找、添加、刪除和修改等,都是針對(duì)記錄集對(duì)象

53、進(jìn)行的。刪除和修改等,都是針對(duì)記錄集對(duì)象進(jìn)行的。返回首頁14.5 14.5 用用SQLSQL語句生成記錄集語句生成記錄集w 14.5.1 14.5.1 最簡(jiǎn)單的最簡(jiǎn)單的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 過濾重復(fù)記錄過濾重復(fù)記錄 返回首頁14.5.1 14.5.1 最簡(jiǎn)單的最簡(jiǎn)單的SQLSQL語句語句 (1 1)1.

54、1.最簡(jiǎn)單的查詢語句最簡(jiǎn)單的查詢語句 下面的下面的SQLSQL語句是最簡(jiǎn)單的查詢形式,生成的記語句是最簡(jiǎn)單的查詢形式,生成的記錄集包含整個(gè)表的全部數(shù)據(jù):錄集包含整個(gè)表的全部數(shù)據(jù):SELECT*FROM 基本信息基本信息 其中其中“*”指表中所有字段指表中所有字段(列列)。FROMFROM子句用于子句用于指定數(shù)據(jù)表。指定數(shù)據(jù)表。2.2.SELECTSELECT語句的基本語法語句的基本語法 在實(shí)際應(yīng)用中,往往需要從一個(gè)或多個(gè)表中選在實(shí)際應(yīng)用中,往往需要從一個(gè)或多個(gè)表中選擇符合特定條件的記錄構(gòu)成記錄集,因此應(yīng)對(duì)擇符合特定條件的記錄構(gòu)成記錄集,因此應(yīng)對(duì)SELECTSELECT語句的語法有一定的了解。以

55、下是語句的語法有一定的了解。以下是SELECTSELECT語語句的基本語法。句的基本語法。14.5.1 14.5.1 最簡(jiǎn)單的最簡(jiǎn)單的SQLSQL語句語句 (2 2)SELECT SELECT*|字段列表字段列表 FROM FROM 表名表名 WHERE WHERE 查詢條件查詢條件 GROUP BY GROUP BY 分組字段分組字段 HAVING HAVING 分組條件分組條件 ORDER BY ORDER BY 排排序字段序字段 ASC|DESCASC|DESC說明說明:*|字段列表字段列表:“*”表示所有字段;表示所有字段;“字段列字段列表表”指定字段,多個(gè)字段間用逗號(hào)分隔,來自不同指

56、定字段,多個(gè)字段間用逗號(hào)分隔,來自不同表的同名字段前須加表的名稱和圓點(diǎn)表的同名字段前須加表的名稱和圓點(diǎn)。FROM FROM子句:指定表。若指定多個(gè)表子句:指定表。若指定多個(gè)表,用逗號(hào)分隔。用逗號(hào)分隔。WHERE WHERE子句:指定選擇記錄的條件。子句:指定選擇記錄的條件。14.5.1 14.5.1 最簡(jiǎn)單的最簡(jiǎn)單的SQLSQL語句語句 (3 3)GROUP BYGROUP BY及及HAVINGHAVING子句:分組過濾,將分組字段子句:分組過濾,將分組字段中同值記錄合并為一條記錄。中同值記錄合并為一條記錄。ORDER BYORDER BY:排序。排序。ASCASC為升序?yàn)樯?默認(rèn)默認(rèn));D

57、ESCDESC為降為降序。序?!纠纠?4.214.2】選擇】選擇“基本信息基本信息”表中的表中的“學(xué)號(hào)學(xué)號(hào)”和和“姓名姓名”字段,字段,“成績(jī)成績(jī)”表中的表中的“課號(hào)課號(hào)”和和“分?jǐn)?shù)分?jǐn)?shù)”字段構(gòu)成記錄集。字段構(gòu)成記錄集。SELECT 基本信息基本信息.學(xué)號(hào)學(xué)號(hào),姓名姓名,課號(hào)課號(hào),分?jǐn)?shù)分?jǐn)?shù) FROM 基本信息基本信息,成績(jī)成績(jī) WHERE 基本信息基本信息.學(xué)號(hào)學(xué)號(hào)=成成績(jī)績(jī).學(xué)號(hào)學(xué)號(hào) 返回首頁返回本節(jié)14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(1 1)在在SELECTSELECT語句的各子句中,語句的各子句中,WHEREWHERE子句使用頻率子句使用頻率最高。該子句

58、指明查詢的條件。在最高。該子句指明查詢的條件。在WHEREWHERE子句中可子句中可使用各種關(guān)系使用各種關(guān)系(比較比較)運(yùn)算符表示篩選記錄的條件。運(yùn)算符表示篩選記錄的條件。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】選擇】選擇“基本信息基本信息”表中所有男生構(gòu)成表中所有男生構(gòu)成記錄集:記錄集:SELECT*FROM

59、基本信息基本信息 WHERE 性別性別=男男 【例【例14.414.4】取】取“基本信息基本信息”表中張三的學(xué)號(hào)和姓表中張三的學(xué)號(hào)和姓名,根據(jù)其學(xué)號(hào)取名,根據(jù)其學(xué)號(hào)取“成績(jī)成績(jī)”表中該學(xué)生的各科成績(jī)表中該學(xué)生的各科成績(jī)構(gòu)成記錄集:構(gòu)成記錄集:SELECT 基本信息基本信息.學(xué)號(hào)學(xué)號(hào),姓名姓名,課號(hào)課號(hào),分?jǐn)?shù)分?jǐn)?shù) FROM 基本信基本信息息,成績(jī)成績(jī) WHERE 基本信息基本信息.學(xué)號(hào)學(xué)號(hào)=成績(jī)成績(jī).學(xué)號(hào)學(xué)號(hào) AND 姓名姓名=張三張三 在在WHEREWHERE子句中使用子句中使用LikeLike運(yùn)算符可實(shí)現(xiàn)模糊查詢。運(yùn)算符可實(shí)現(xiàn)模糊查詢。SQLSQL語句中語句中LikeLike運(yùn)算符的通配符是

60、運(yùn)算符的通配符是“%”“%”,可代表任,可代表任何字符,字符數(shù)不限。何字符,字符數(shù)不限。14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(3 3)【例【例14.514.5】用】用LikeLike運(yùn)算符進(jìn)行模糊查詢。運(yùn)算符進(jìn)行模糊查詢。查詢所有姓查詢所有姓“張張”的學(xué)生:的學(xué)生:SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like 張張%查詢所有姓名中含有查詢所有姓名中含有“小小”字的學(xué)生:字的學(xué)生:SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like%小小%查詢姓名最后一個(gè)字為查詢姓名最后一個(gè)字為“剛剛”的所有學(xué)生:的所有學(xué)生:SELE

61、CT*FROM 基本信息基本信息 WHERE 姓名姓名 like%剛剛返回首頁返回本節(jié)14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語句語句(1)(1)在程序代碼中,在程序代碼中,SQLSQL語句必須以字符串形式提供。例如:語句必須以字符串形式提供。例如:Adodc1.RecordSource=SELECT*FROM 基本信息基本信息 如果如果SQLSQL語句中含有字符串常量,必須將字符串常量放在語句中含有字符串常量,必須將字符串常量放在一對(duì)單引號(hào)中。一對(duì)單引號(hào)中。【例【例14.614.6】在】在SQLSQL語句中引用字符串常量。語句中引用字符串常量。Dim

62、strSQL As StringstrSQL=SELECT*FROM 基本信息基本信息 WHERE 性別性別=男男Adodc1.RecordSource=strSQL 如果如果SQLSQL語句中引用了語句中引用了StringString型變量或其他控件的字符串型變量或其他控件的字符串類型的屬性(如文本框的類型的屬性(如文本框的TextText屬性),應(yīng)當(dāng)采用下面的引屬性),應(yīng)當(dāng)采用下面的引用形式(注意單引號(hào)的位置):用形式(注意單引號(hào)的位置):.&.&字符串變量或控件屬性字符串變量或控件屬性&.&.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語句中引用了非字符串類型的變量或控語句中引用了非字符串類型的變量或控件屬性,不使用單引號(hào)。件屬性,不使用單引號(hào)。【例【例14.914.9】在】在SQLSQL語句中引用非字符串類型的變量。語句中引用非字符串類型的變量。Dim strSQL As String,intGrade As IntegerintGrade=60strSQL=SELECT*FROM 成績(jī)成績(jī) WHERE 分?jǐn)?shù)分?jǐn)?shù)=_&intGra

65、de&AND 課程課程=英語英語Adodc1.RecordSource=strSQL返回首頁返回本節(jié)14.5.4 14.5.4 記錄排序記錄排序 用用ORDER BYORDER BY子句(子句(ASCASC為升序,為升序,DESCDESC為降序)為降序)對(duì)記錄排序。例如:對(duì)記錄排序。例如:SELECT*FROM 基本信息基本信息 ORDER BY 學(xué)號(hào)學(xué)號(hào) ASCSELECT*FROM 基本信息基本信息 ORDER BY 姓名姓名 DESC返回首頁返回本節(jié)14.5.5 14.5.5 記錄分組記錄分組 用用GROUP BYGROUP BY子句將指定字段中數(shù)值相等的多條記錄子句將指定字段中數(shù)值相等

66、的多條記錄合并為一條記錄。可用合并為一條記錄??捎肏AVINGHAVING子句附加條件。子句附加條件。【例【例14.1014.10】以】以“班級(jí)班級(jí)”作為分組字段,查詢各班作為分組字段,查詢各班女生人數(shù)。女生人數(shù)。SELECT 班級(jí)班級(jí),Count(*)AS 女生女生 FROM 基本基本情況情況 GROUP BY 班級(jí)班級(jí),性別性別 HAVING 性別性別=女女說明:上面的語句中說明:上面的語句中Count(Count(*)表示統(tǒng)計(jì)記錄總數(shù),表示統(tǒng)計(jì)記錄總數(shù),ASAS子句表示存放統(tǒng)計(jì)結(jié)果的臨時(shí)字段別名。其他子句表示存放統(tǒng)計(jì)結(jié)果的臨時(shí)字段別名。其他SQLSQL函數(shù)還有函數(shù)還有SumSum、AvgAvg、MaxMax和和MinMin等。等。返回首頁返回本節(jié)14.5.6 14.5.6 過濾重復(fù)記錄(過濾重復(fù)記錄(1 1)過濾重復(fù)記錄是指忽略字段值相同的重復(fù)記錄。過濾重復(fù)記錄是指忽略字段值相同的重復(fù)記錄。例如,假定學(xué)籍表中含有例如,假定學(xué)籍表中含有400400名學(xué)生的信息,這些名學(xué)生的信息,這些學(xué)生來自學(xué)生來自1010個(gè)班級(jí),現(xiàn)在要查詢學(xué)籍表中的個(gè)班級(jí),現(xiàn)在要查詢學(xué)籍表中的“班級(jí)班級(jí)”字段生成

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!