數(shù)據(jù)庫(kù)原理及應(yīng)用最終一次上機(jī)實(shí)踐_第1頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用最終一次上機(jī)實(shí)踐_第2頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用最終一次上機(jī)實(shí)踐_第3頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用最終一次上機(jī)實(shí)踐_第4頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用最終一次上機(jī)實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——數(shù)據(jù)庫(kù)原理及應(yīng)用最終一次上機(jī)實(shí)踐第六次上機(jī)實(shí)踐

試驗(yàn)七應(yīng)用VB開(kāi)發(fā)簡(jiǎn)單的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)1設(shè)計(jì)數(shù)據(jù)庫(kù)2設(shè)計(jì)應(yīng)用程序界面

。2設(shè)計(jì)應(yīng)用程序界面

試驗(yàn)七應(yīng)用VB開(kāi)發(fā)簡(jiǎn)單的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)

項(xiàng)目:基于VisualBasic/SQLServer的學(xué)生信息管理系統(tǒng)

★學(xué)生信息管理系統(tǒng)開(kāi)發(fā)主要包括

▲后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)和維護(hù)

要求:建立一致性,完整性,安全性好的數(shù)據(jù)庫(kù)工具:SQLServer2023▲前端應(yīng)用程序的開(kāi)發(fā)

要求:應(yīng)用程序功能完備,易使用。工具:VisualBasic

★學(xué)生信息管理系統(tǒng)采用C/S(客戶機(jī)和服務(wù)器結(jié)構(gòu))體系結(jié)構(gòu),依照客戶端設(shè)計(jì)和教據(jù)庫(kù)設(shè)計(jì)兩部分進(jìn)行??蛻舳嗽O(shè)計(jì)負(fù)責(zé)提供表達(dá)規(guī)律、顯示用戶界面信息、訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器等,采用ⅥsualBasic6.0作為開(kāi)發(fā)工具;服務(wù)器端則用于提供數(shù)據(jù)服務(wù),采用SQLServer2023作為數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)現(xiàn)服務(wù)器端的數(shù)據(jù)處理?!锟蛻舳讼到y(tǒng)總體設(shè)計(jì)

學(xué)生信息管理系統(tǒng)客戶端主要對(duì)學(xué)生信息、課程信息、學(xué)生成績(jī)信息進(jìn)行管理,該系統(tǒng)分4個(gè)功能模塊,如下圖。

1)專(zhuān)業(yè)班級(jí)管理:包括專(zhuān)業(yè)信息和班級(jí)信息的錄入、修改、刪除等操作。

2)學(xué)生信息管理:包括學(xué)生信息的錄入、修改、刪除、查詢和生成報(bào)表等操作。3)選修課程設(shè)置:實(shí)現(xiàn)課程信息的錄入、修改、刪除、查詢和生成報(bào)表等操作。4)成績(jī)信息管理:實(shí)現(xiàn)學(xué)生成績(jī)的錄入、修改、刪除和查詢等操作。錄入某個(gè)學(xué)生的某門(mén)課程的成績(jī)時(shí),由于學(xué)生信息和課程信息已在數(shù)據(jù)庫(kù)中存在,可通過(guò)下拉列表框的形式來(lái)選擇學(xué)生和課程來(lái)錄入、修改、刪除和查詢成績(jī)。

1

系統(tǒng)的功能模塊圖

預(yù)備知識(shí)VB基礎(chǔ)

一、為什么采用VisualBasic6.0開(kāi)發(fā)數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)系統(tǒng)(信息管理系統(tǒng))開(kāi)發(fā)工具好多,早期的如FoxPro等。目前,主流的開(kāi)發(fā)工具有VisualBasic,VisualC++,Delphi等,其中VisualBasic以其簡(jiǎn)單易懂的語(yǔ)法,直觀而強(qiáng)大的IDE(集成開(kāi)發(fā)環(huán)境),豐富強(qiáng)大的數(shù)據(jù)庫(kù)操作特性成為最流行的數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)工具。

在Windows操作系統(tǒng)中,VisualBasic是最簡(jiǎn)單的數(shù)據(jù)庫(kù)開(kāi)發(fā)平臺(tái),通過(guò)它可以在很短的時(shí)間內(nèi)開(kāi)發(fā)出高效、美觀的數(shù)據(jù)庫(kù)應(yīng)用程序。

1)VisualBasic作為數(shù)據(jù)庫(kù)開(kāi)發(fā)平臺(tái)有以下優(yōu)點(diǎn):

簡(jiǎn)單性。VisualBasic提供了數(shù)據(jù)控件,利用該控件用戶可以便利地訪問(wèn)數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行瀏覽。

靈活性。VisualBasic不像一般的數(shù)據(jù)庫(kù)(如Access)那樣局限于特定的應(yīng)用程序結(jié)構(gòu),也不需要某些指令對(duì)當(dāng)前開(kāi)啟的數(shù)據(jù)庫(kù)進(jìn)行操作,因而比較靈活。

可擴(kuò)展性。VisualBasic是一種可以擴(kuò)展的語(yǔ)言,其中包括在數(shù)據(jù)庫(kù)方面的擴(kuò)展。在VisualBasic中,可以使用Active控件,這些控件可以由Microsoft公司提供,也可由第三方開(kāi)發(fā)者提供。有了這些控件,可以很簡(jiǎn)單地在VisualBasic中增加新功能。

2)數(shù)據(jù)庫(kù)前端是一個(gè)計(jì)算機(jī)應(yīng)用程序,用該應(yīng)用程序可以選擇數(shù)據(jù)庫(kù)中的數(shù)據(jù)項(xiàng),并把所選擇的數(shù)據(jù)項(xiàng)按用戶的要求顯示出來(lái)。數(shù)據(jù)庫(kù)系統(tǒng)本身被稱為后端,后端數(shù)據(jù)庫(kù)尋常是一個(gè)關(guān)系表的集合。

選擇VisualBasic作為開(kāi)發(fā)數(shù)據(jù)庫(kù)前端應(yīng)用程序的工具,主要是由于VisualBasic可以和多種數(shù)據(jù)庫(kù)連接。目前,較為流行的大多數(shù)數(shù)據(jù)庫(kù)都可以與VisualBasic連接,因而可以用VisualBasic開(kāi)發(fā)相應(yīng)的前端應(yīng)用程序。

二、VB環(huán)境下數(shù)據(jù)處理功能簡(jiǎn)介

VB中提供了多種數(shù)據(jù)庫(kù)訪問(wèn)方法,可以訪問(wèn)的數(shù)據(jù)類(lèi)型有dBase,FoxPro和Access數(shù)據(jù)庫(kù)。VB提供的數(shù)據(jù)庫(kù)訪問(wèn)方法主要有:使用可視化數(shù)據(jù)管理器管理數(shù)據(jù)庫(kù),用Data,ADO數(shù)據(jù)控件訪問(wèn)數(shù)據(jù)庫(kù),通過(guò)ODBC方式訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)以及

2

采用對(duì)象變量訪問(wèn)數(shù)據(jù)庫(kù)等。

VB提供了多種SQLServer數(shù)據(jù)庫(kù)的訪問(wèn)方法,例如使用數(shù)據(jù)訪問(wèn)對(duì)象(DAO),遠(yuǎn)程訪問(wèn)對(duì)象(RDO),ADO數(shù)據(jù)控件及ADO對(duì)象等。

可視化數(shù)據(jù)庫(kù)工具(VisualDambaseTools)是集成在VB6.0開(kāi)發(fā)環(huán)境中的可視化的數(shù)據(jù)庫(kù)管理工具使用這套工具主要可以完成以下功能:

鏈接到任何符合ODBC(微軟公司推出的開(kāi)放式數(shù)據(jù)庫(kù)互聯(lián))規(guī)則的數(shù)據(jù)庫(kù)。使用數(shù)據(jù)庫(kù)圖表創(chuàng)立和修改soLServer數(shù)據(jù)庫(kù)。設(shè)計(jì)、執(zhí)行和保存繁雜的查詢。

添加、更改和刪除存儲(chǔ)在數(shù)據(jù)庫(kù)表中的數(shù)據(jù)

可視化數(shù)據(jù)庫(kù)工具(VisualDambaseTools)主要由數(shù)據(jù)視圖、數(shù)據(jù)庫(kù)設(shè)計(jì)器、查詢?cè)O(shè)計(jì)器和源代碼編輯器四部分組成。1數(shù)據(jù)視圖

數(shù)據(jù)視圖的外觀與工程窗口十分類(lèi)似,只是數(shù)據(jù)視圖是用來(lái)管理數(shù)據(jù)庫(kù)對(duì)象的,它提供了一種圖形化方法來(lái)組織數(shù)據(jù)庫(kù)對(duì)象,這些數(shù)據(jù)庫(kù)對(duì)象包括數(shù)據(jù)庫(kù)圖表、表、視圖、觸發(fā)器和存儲(chǔ)過(guò)程。用戶可以通過(guò)雙擊、拖動(dòng)及右鍵菜單對(duì)數(shù)據(jù)庫(kù)對(duì)象執(zhí)行開(kāi)啟、創(chuàng)立和編輯等操作。

數(shù)據(jù)綁定控件。

在VB環(huán)境下,常用的對(duì)象有各種控件、窗體、菜單、應(yīng)用程序的部件以及數(shù)據(jù)庫(kù)等。這些對(duì)象都具有屬性(數(shù)據(jù))和行為方式(方法)。屬性用于描述對(duì)象的一組特征,方法為對(duì)象實(shí)施一些動(dòng)作,對(duì)象的動(dòng)作往往要觸發(fā)事件,而觸發(fā)事件又可以修改屬性。一個(gè)對(duì)象建立后,其操作可通過(guò)與該對(duì)象有關(guān)的屬性、事件和方法來(lái)描述。

數(shù)據(jù)綁定控件是數(shù)據(jù)識(shí)別控件,在數(shù)據(jù)庫(kù)中通過(guò)它訪問(wèn)信息,當(dāng)一個(gè)控件被綁定到數(shù)據(jù)控件控件,該控件將顯示數(shù)據(jù)庫(kù)中的字段,并接受對(duì)數(shù)據(jù)庫(kù)的修改。

大多數(shù)綁定控件是用DataChanged,DataField,DataSource屬性的設(shè)置與Data控件綁定的。其中DataChanged屬性說(shuō)明返回綁定控件中的值是否極已經(jīng)改變,DataField屬性用于設(shè)置要顯示得數(shù)據(jù)庫(kù)中的字段名稱,DataSource屬性用于設(shè)置與該控件綁定的Data控件的名稱。

試驗(yàn)七應(yīng)用VB開(kāi)發(fā)簡(jiǎn)單的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)2設(shè)計(jì)應(yīng)用程序界面

一、試驗(yàn)?zāi)康?/p>

熟悉VB6.0的集成環(huán)境及其基本操作:

熟悉VB軟件的使用,要求把握VB的基本功能、常用控件能夠運(yùn)用;學(xué)會(huì)對(duì)數(shù)據(jù)控件(Data控件、數(shù)據(jù)綁定控件等)的使用;熟悉VB數(shù)據(jù)訪問(wèn)技術(shù)。

二、試驗(yàn)內(nèi)容

1)VB的啟動(dòng),對(duì)VB集成開(kāi)發(fā)環(huán)境(IDE)的熟悉,熟悉工具箱中相應(yīng)的控

件功能及其使用方法。重點(diǎn)把握數(shù)據(jù)控件(Data)、數(shù)據(jù)綁定控件(如文本框、組合框等標(biāo)準(zhǔn)控件)。

三、試驗(yàn)步驟和方法

3

1)啟動(dòng)VB程序后,首先顯示“新建工程〞對(duì)話框,如圖1所示。

圖1.“新建工程〞對(duì)話框

雙擊“新建〞選項(xiàng)卡中的“標(biāo)準(zhǔn)EXE〞選項(xiàng)(默認(rèn)選項(xiàng))或在選擇了某種工程后,單擊“開(kāi)啟〞按鈕,進(jìn)入VB的集成開(kāi)發(fā)環(huán)境(IDE),如圖2所示。當(dāng)一個(gè)應(yīng)用程序開(kāi)始創(chuàng)立時(shí),系統(tǒng)會(huì)自動(dòng)為該程序添加一個(gè)空白窗體到窗體設(shè)計(jì)器中。

在設(shè)計(jì)程序界面時(shí)僅需要將工具箱中的相應(yīng)的控件(部件),畫(huà)到窗體的適當(dāng)位置即可。而后編寫(xiě)這些控件的事件代碼,即可完成一般性的程序設(shè)計(jì)過(guò)程。

在集成開(kāi)發(fā)環(huán)境中集中了大量不同的功能,如程序設(shè)計(jì)、編輯、編譯、調(diào)試等,這使用戶在一個(gè)界面中可以完成多個(gè)任務(wù)。

圖2.VB6.0的集成開(kāi)發(fā)環(huán)境

2)使用ADO控件設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)瀏覽程序

在窗體中添加幾對(duì)標(biāo)簽和文本框和一個(gè)ADO控件。

設(shè)置標(biāo)簽的Caption屬性,文本框的Text屬性設(shè)置為空。

設(shè)置ADO控件的屬性:鼠標(biāo)指向ADO控件,單擊右鍵,選擇“ADODC屬性〞。在

4

“通用〞選項(xiàng)卡中選擇“使用鏈接字符串〞,單擊“生成〞按鈕,開(kāi)啟了“數(shù)據(jù)鏈接屬性〞對(duì)話框,

在“提供者〞選項(xiàng)卡中選擇

單擊下一步,進(jìn)入“鏈接〞選項(xiàng)卡,在其中選擇需要使用的數(shù)據(jù)庫(kù)文件,然后單擊“測(cè)試鏈接〞按鈕,驗(yàn)證鏈接的正確性。單擊“確定〞按鈕完成數(shù)據(jù)鏈接屬性的設(shè)置。

5

在ADO控件屬性頁(yè)的“記錄源〞選項(xiàng)卡中,設(shè)置命令類(lèi)型為2(表類(lèi)型),設(shè)置控件的RecordSource屬性。

在ADO控件的屬性設(shè)置完畢之后,設(shè)置文本框的DataSource屬性和DataField屬性。

編寫(xiě)程序代碼

PrivateSubText1_Change()

a=Adodc1.Recordset.AbsolutePositionb=Adodc1.Recordset.RecordCount

Adodc1.Caption=〞當(dāng)前記錄號(hào):〞&a&〞/〞&b

6

EndSub

可有如下運(yùn)行結(jié)果:

3)創(chuàng)立窗體

4)使用數(shù)據(jù)視圖工具創(chuàng)立數(shù)據(jù)連接。

點(diǎn)擊

,開(kāi)啟數(shù)據(jù)視圖窗口:

點(diǎn)擊數(shù)據(jù)視圖窗口中工具欄第三個(gè)圖標(biāo)“添加新的數(shù)據(jù)連接〞,開(kāi)啟對(duì)話框

7

圖“數(shù)據(jù)鏈接屬性〞列話框

在“提供者〞選項(xiàng)卡中選擇“MicrosoftOLEDBProviderforODBCDrivers〞選項(xiàng)后,單擊“下一步〞按鈕,進(jìn)入鏈接選項(xiàng)卡,在其中選擇“使用鏈接字符串〞后,單擊“編譯“按鈕。

8

圖使用字符串創(chuàng)立鏈接

圖新建機(jī)器數(shù)據(jù)源

在上圖所示的對(duì)話框中,選擇“機(jī)器數(shù)據(jù)源〞選項(xiàng)卡,單擊其中“新建〞按鈕。在圖14-24所示的對(duì)話框中選擇數(shù)據(jù)源的類(lèi)型,本例選擇了“系統(tǒng)數(shù)據(jù)源〞。

9

選擇數(shù)據(jù)源類(lèi)型

單擊下一步

圖選擇數(shù)據(jù)源的驅(qū)動(dòng)程序

對(duì)話框中選擇數(shù)據(jù)源的驅(qū)動(dòng)程序,本例選擇了SQLServer,單擊“下一步〞按鈕。

10

16

17

設(shè)置文本框的DataSource屬性和DataField屬性。

5)運(yùn)行,調(diào)試程序。最終生成一個(gè)可執(zhí)行文件,應(yīng)用程序設(shè)計(jì)完成。體會(huì)

★學(xué)生信息管理系統(tǒng)開(kāi)發(fā)主要包括▲后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì)和維護(hù)

要求:建立一致性,完整性,安全性好的數(shù)據(jù)庫(kù)工具:SQLServer2023▲前端應(yīng)用程序的開(kāi)發(fā)

要求:應(yīng)用程序功能完備,易使用。工具:VisualBasic6)完成試驗(yàn)報(bào)告

18

最終一次實(shí)踐任務(wù):用代碼來(lái)訪問(wèn)數(shù)據(jù)庫(kù),建立應(yīng)用程序。

本任務(wù)有一定難度,有興趣同學(xué)可選作,

熟悉VB的同學(xué)可以選作。

用代碼來(lái)訪問(wèn)數(shù)據(jù)庫(kù),建立應(yīng)用程序

步驟一:

在創(chuàng)立了數(shù)據(jù)鏈接后,就可以使用該鏈接來(lái)訪問(wèn)SQLServer數(shù)據(jù)庫(kù)了,新建一個(gè)標(biāo)準(zhǔn)EXE類(lèi)型VB工程,執(zhí)行“工程〞菜單“DataEnvironment〞命令,將一個(gè)數(shù)據(jù)環(huán)境設(shè)計(jì)器添加到當(dāng)前工程中。

單擊VB工具欄中的“數(shù)據(jù)視圖窗口〞工具按鈕,開(kāi)啟“數(shù)據(jù)視圖〞對(duì)話框。將其中的spe_Info表拖放到數(shù)據(jù)環(huán)境設(shè)計(jì)器中,如下圖。

此時(shí)在數(shù)據(jù)環(huán)境設(shè)計(jì)器中自動(dòng)添加一個(gè)鏈接對(duì)象Connection2,該對(duì)象中包含有spe_Info表,從窗口可以看到該表中所有字段信息。

鼠標(biāo)指向數(shù)據(jù)環(huán)境設(shè)計(jì)器下spe_Info表,單擊右鍵在彈出的菜單中執(zhí)行屬性命令,開(kāi)啟spe_Info對(duì)話框。

進(jìn)入“高級(jí)〞選項(xiàng)卡,將“游標(biāo)位置’’設(shè)置為“2使用服務(wù)器端游標(biāo)〞,將“游標(biāo)類(lèi)型設(shè)置為2-動(dòng)態(tài)〞,將“鎖定類(lèi)型設(shè)置為開(kāi)放式。設(shè)置完畢后,單擊“確定〞

19

按鈕,關(guān)閉spe_Info屬性對(duì)話框;

對(duì)象屬性設(shè)置完畢后,在數(shù)據(jù)環(huán)境設(shè)計(jì)器中將“spe_Info’直接拖放到標(biāo)準(zhǔn)EXE工程的窗體上,系統(tǒng)自動(dòng)為各字段建立約束控件(數(shù)據(jù)綁定控件)及對(duì)應(yīng)的標(biāo)簽控件。

●觀測(cè)數(shù)據(jù)綁定控件的使用。

在上圖中,在窗體上有兩個(gè)文本框,兩個(gè)標(biāo)簽。將兩個(gè)標(biāo)簽的Caption屬性分別設(shè)為“專(zhuān)業(yè)號(hào)〞和“專(zhuān)業(yè)名〞。

如上圖,在窗體上添加3個(gè)按鈕控件(Command1、Command2、Command13),并放在適當(dāng)位置,按下面編寫(xiě)按鈕控件的事件代碼。PrivateSubCommand1_Click()OnErrorGoToerror1

DataEnvironment1.rsspe_Info.MovePreviousIfDataEnvironment1.rsspe_Info.BOFThenDataEnvironment1.rsspe_Info.MoveFirsrEndIfExitSuberror1:

MsgBoxErr.Description.vbOKOnly,\出錯(cuò)提醒\EndSub退出按鈕:

20

PrivateSubCommand3_Click()EndEndSub

程序運(yùn)行結(jié)果如上圖。

步驟二:

4)正式設(shè)計(jì)學(xué)生信息管理系統(tǒng)應(yīng)用程序:界面與代碼設(shè)計(jì)一、公共模塊中定義的全局變量及子程序1.定義的全局變量

PubllcMyConnectionAsNewADODB.Connection用于建立弓數(shù)據(jù)庫(kù)的連接PublicSQLUserNameAsString存放SQL的登錄賬號(hào)2.ChangeFormPos(frmMainAsMDIForm,frmAsForm)子過(guò)程功能:用于確定調(diào)用窗體在主窗體frmMain中昀顯示位置。

PubllcSubChangormPos(frmMainAsMDIForm,frmAsForm)DimTopASInteger

Top=(FtrmMain.ScaleHeight-frm.Height)/2-600IfTop>0ThenFrm.Top=TopElse

Frm.Top=0Endif

frm.Ltft=(frmMain.ScaleWidth-frm.Width)/2EndSub

二、用戶登錄窗體的設(shè)計(jì)

用戶登錄是為了確定該用戶是否具備使用系統(tǒng)的權(quán)力及訪問(wèn)各模塊的權(quán)限。該窗體首先完成與數(shù)據(jù)庫(kù)的信任連接,并將student數(shù)據(jù)庫(kù)的所有SQLServer用戶添加到用戶名組合列表框中。登錄時(shí),用戶從列表框中選擇用戶名,輸入密碼后,單擊“確定〞按鈕,應(yīng)用程序?qū)Ⅱ?yàn)證用戶名和密碼,若是合法的SQLServer用,一,則該用戶有權(quán)進(jìn)入系統(tǒng)。登錄窗體界面如下圖

21

窗體中的主要控件名稱及屬性值如表所示:

窗體中主要控件及屬性值

在窗體frmLogin中,添加以下代碼:

DimMyconnection_isOpenAsBoolean‘定義變量用于標(biāo)記數(shù)據(jù)庫(kù)是否連接PriVateSubFormLoad()

DimstrConnASStrinq‘先以Windows用戶連接到SQLServer,獲取數(shù)據(jù)庫(kù)SQL賬戶

strConn=\〞_

+\

22

source=(local)〞

MvConntction.ConnectionStrinq-strConnOnErrorGoToerr_Open_msqMyConnection.Open

Myconnection_IsOpen=True

CallGetUserListExitSuberr_Open_msq:

MsgBox(\用戶連接到SQLServer\EndSub

SubGet_UserList(),獲取數(shù)據(jù)庫(kù)的SQL賬戶DimobirsAsNewADODB.Recordsetobjrs.CursorType=adOpenKeyset

objrs.LockType=adLockOptimistic

objrs.Open\MyConnection,,,adCmdTextcmbUser.Clear

DoUntilobjrs.EOF

cmbUser.AddItemobjrs.Fields(\objrs.MoveNextLoop

Setobjrs=Nothing

IfcmbUser.ListCount>0ThencmbUser.ListIndex=0EndSub

PrivateSubcmdExit_Click()EndEndSubPrivateSubcmdOK_Click()‘重新以SQL用J、1身份連接到SQLServerDimstrConnAsStringDimSQLPasswordAsStringIfMyconnection_IsOpenThenMyConnection.Close

Myconnection_IsOpen=FalseEndIf

SQLUserName=cmbUser.TextSQLPassword=txtPwd.Text

strConn=〞provider=SQLOLEDB.l;uid=\&\&SQLPassword&\MyConnection.ConnectionString=strConnOnErrorGoToerr_msqMyConnection.OpenMDIformMain.Show

Myconnaction_IsOpen=TrueUnloadMe

23

ExitSubErr_msg:

MsgBox(“SQL用戶不存在,或密碼不正確〞)EndSub

三、主窗體MDlformMain的設(shè)計(jì)

主窗體用于定位應(yīng)用程序的不同部分,為應(yīng)用程序提供導(dǎo)航功能。本系統(tǒng)采用多文檔界面,使用戶便利地在各個(gè)應(yīng)用程序之間切換,且多文檔窗體還可以少占系統(tǒng)資源。創(chuàng)立主窗體的一般步驟如下所述。

(l)在“工程〞菜單中單擊“添加MDI窗體〞命令,在出現(xiàn)的“添加MDI窗體〞對(duì)話框的“新建〞選項(xiàng)卡中選擇“窗體〞項(xiàng),然后單擊“開(kāi)啟〞按鈕。

(2)在“屬性〞對(duì)話框中設(shè)置窗體名稱為MDIfonnMain,Caption為“學(xué)生信息管理系統(tǒng)〞,WindowState為2-Maxmized,窗體界面如下圖。

圖主窗體MDIformMain的界面

(3)在窗體上單擊鼠標(biāo)右鍵,在彈出的快捷菜單L選擇“菜單編輯器〞,開(kāi)啟“菜單編輯器〞對(duì)話框,按圖所示編輯菜單項(xiàng)。

24

圖菜單編輯器界面

各菜單項(xiàng)標(biāo)題、名稱及單擊所執(zhí)行的命令如表所示。

界面設(shè)計(jì)完成后,在MDlformMain窗體中添加如下代碼:PrivateSubMDIForm_Load()

'假使以客人身份登錄,不允許進(jìn)行班級(jí)專(zhuān)業(yè)管理IfSQLUserName=\mnuSpeClass.Enabled=FalsemnuClass.Enabled=FalsemnuSpe.Enabled=FalseEndIfEndSub

PrivateSubmnuScore_Click()'進(jìn)入成績(jī)管理對(duì)話框

25

frmScore.Show

ChangeFormPosMDIformMain,frmScoreEndSub

PrivateSubmnuSpe_Click()'進(jìn)入專(zhuān)業(yè)管理對(duì)話框frmSpe.Show

ChangeFormPosMDIformMain,frmSpeEndSub

PrivateSubmnuClass_Click()'進(jìn)入班級(jí)管理對(duì)話框frmClass.Show

ChangeFormPosMDIformMain,frmClassEndSub

PrivateSubmnuCourse_Click()'進(jìn)入選修課程管理對(duì)話框frmCourse.Show

ChangeFormPosMDIformMain,frmCourseEndSub

PrivateSubmnuStu_Click()'進(jìn)入學(xué)生信息管理對(duì)話框frmStu.Show

ChangeFormPosMDIformMain,frmStuEndSub

PrivateSubmnuExit_Click()EndEndSub

四、專(zhuān)業(yè)管理和班級(jí)管理模塊的設(shè)計(jì)

專(zhuān)業(yè)班級(jí)管理模塊主要實(shí)現(xiàn)班級(jí)和專(zhuān)業(yè)的添加、修改和刪除等功能。1.專(zhuān)業(yè)管理frmSpe窗口的設(shè)計(jì)

選擇“專(zhuān)業(yè)班級(jí)管理〞中的“專(zhuān)業(yè)管理〞菜單項(xiàng),將出現(xiàn)如下圖的frmSpe窗體。

26

圖“專(zhuān)業(yè)管理〞窗體frmSpe的界面

窗體中的主要控件名稱及屬性值如表所示。

表“專(zhuān)業(yè)管理〞系統(tǒng)菜單標(biāo)題及名稱

27

在窗體frmSpe中,添加以下代碼:

PrivateSubForm_Load()'初始化窗口MSFlexGrid1.TextMatrix(0,0)=\記錄\MSFlexGrid1.TextMatrix(0,1)=\專(zhuān)業(yè)編號(hào)\MSFlexGrid1.TextMatrix(0,2)=\專(zhuān)業(yè)名稱\MSFlexGrid1.ColWidth(0)=500MSFlexGrid1.ColWidth(1)=1000MSFlexGrid1.ColWidth(2)=2000

CallDisplay_Spe'顯示所有專(zhuān)業(yè)的信息EndSub

28

PrivateSubcmdSpeAdd_Click()DimsqlAsString

DimobjrsAsADODB.Recordset

IftxtSpeNo.Text=\判斷專(zhuān)業(yè)編號(hào)是否為空,為空則重新輸入專(zhuān)業(yè)編號(hào)

MsgBox\班級(jí)編號(hào)必需填寫(xiě)!\txtSpeNo.SetFocusExitSubEndIf

IftxtSpeName.Text=\判斷專(zhuān)業(yè)名稱是否為空,為空則重新輸入專(zhuān)業(yè)名稱

MsgBox\班級(jí)名稱必需填寫(xiě)!\txtSpeName.SetFocusExitSubEndIf

sql=\

sql=sql&txtSpeNo&\OnErrorGoToerr_Msg_Insert

Setobjrs=MyConnection.Execute(sql)

frmSpe.MSFlexGrid1.Rows=frmSpe.MSFlexGrid1.Rows+1frmSpe.MSFlexGrid1.Row=frmSpe.MSFlexGrid1.Rows-1

frmSpe.MSFlexGrid1.TextMatrix(frmSpe.MSFlexGrid1.Row,0)=frmSpe.MSFlexGrid1.Rows-1

frmSpe.MSFlexGrid1.TextMatrix(frmSpe.MSFlexGrid1.Row,1)=txtSpeNo.Text

frmSpe.MSFlexGrid1.TextMatrix(frmSpe.MSFlexGrid1.Row,2)=txtSpeName.Text

Setobjrs=NothingGoToOK_next

err_Msg_Insert:MsgBox(\該專(zhuān)業(yè)已經(jīng)存在,不可再添加!\OK_next:Setobjrs=NothingtxtSpeNo.Text=\txtSpeName.Text=\txtSpeNo.Enabled=TruetxtSpeName.Enabled=TrueEndSub

PublicSubDisplay_Spe()'將專(zhuān)業(yè)數(shù)據(jù)填入表格

DimobjrsAsNewADODB.Recordset,iAsInteger,strAsStringSetobjrs=MyConnection.Execute(\MSFlexGrid1.Rows=1DoUntilobjrs.EOF

29

i=i+1

MSFlexGrid1.Rows=i+1

MSFlexGrid1.TextMatrix(i,0)=iForj=1ToMSFlexGrid1.Cols-1

IfNotIsNull(objrs.Fields(j-1).Value)Then

MSFlexGrid1.TextMatrix(i,j)=CStr(objrs.Fields(j-1).Value)

EndIfNext

objrs.MoveNextLoop

Setobjrs=NothingEndSub

PrivateSubcmdSpeAdd_Click()DimsqlAsString

DimobjrsAsADODB.Recordset

IftxtSpeNo.Text=\判斷專(zhuān)業(yè)編號(hào)是否為空,為空則重新輸入專(zhuān)業(yè)編號(hào)

MsgBox\班級(jí)編號(hào)必需填寫(xiě)!\txtSpeNo.SetFocusExitSubEndIf

IftxtSpeName.Text=\判斷專(zhuān)業(yè)名稱是否為空,為空則重新輸入專(zhuān)業(yè)名稱

MsgBox\班級(jí)名稱必需填寫(xiě)!\txtSpeName.SetFocusExitSubEndIf

sql=\

sql=sql&txtSpeNo&\OnErrorGoToerr_Msg_Insert

Setobjrs=MyConnection.Execute(sql)

frmSpe.MSFlexGrid1.Rows=frmSpe.MSFlexGrid1.Rows+1frmSpe.MSFlexGrid1.Row=frmSpe.MSFlexGrid1.Rows-1

frmSpe.MSFlexGrid1.TextMatrix(frmSpe.MSFlexGrid1.Row,0)=frmSpe.MSFlexGrid1.Rows-1

frmSpe.MSFlexGrid1.TextMatrix(frmSpe.MSFlexGrid1.Row,1)=txtSpeNo.Text

frmSpe.MSFlexGrid1.TextMatrix(frmSpe.MSFlexGrid1.Row,2)=txtSpeName.Text

Setobjrs=NothingGoToOK_next

30

err_Msg_Insert:MsgBox(\該專(zhuān)業(yè)已經(jīng)存在,不可再添加!\OK_next:Setobjrs=NothingtxtSpeNo.Text=\txtSpeName.Text=\txtSpeNo.Enabled=TruetxtSpeName.Enabled=TrueEndSub

PrivateSubcmdSpeUpdate_Click()DimsqlAsString

DimobjrsAsADODB.Recordset

IftxtSpeNo.Text=\判斷班級(jí)編號(hào)是否為空,為空則重新輸入班級(jí)編號(hào)

MsgBox\班級(jí)編號(hào)必需填寫(xiě)!\txtSpeNo.SetFocusExitSubEndIf

IftxtSpeName.Text=\判斷班級(jí)名稱是否為空,為空則重新輸入班級(jí)名稱

MsgBox\班級(jí)名稱必需填寫(xiě)!\txtSpeName.SetFocusExitSubEndIf

sql=\

sql=sql&txtSpeName&\OnErrorGoToerr_Msg_Update

Setobjrs=MyConnection.Execute(sql)

frmSpe.MSFlexGr

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論