版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> VB應(yīng)用軟件設(shè)計(jì)實(shí)踐</p><p><b> 課程設(shè)計(jì)</b></p><p> 學(xué) 院 交通運(yùn)輸學(xué)院 班 級(jí) 交運(yùn)1102班 </p><p> 2013年 7 月10 日</p><p> 交通運(yùn)輸學(xué)院課程設(shè)計(jì)任務(wù)書(shū)</p>
2、;<p><b> 目錄</b></p><p><b> 一.引言2</b></p><p> 1.課程設(shè)計(jì)的目的2</p><p> 2.課程設(shè)計(jì)的主要內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計(jì)要求、工作量要求)2</p><p><b> 1)主要內(nèi)容:
3、2</b></p><p> 2)設(shè)計(jì)基本要求:2</p><p><b> 二.系統(tǒng)設(shè)計(jì)4</b></p><p><b> 1、概念設(shè)計(jì)4</b></p><p> 2、下面所示的數(shù)據(jù)項(xiàng)5</p><p> 3、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)5<
4、/p><p><b> 4、邏輯設(shè)計(jì)7</b></p><p><b> 5、數(shù)據(jù)表8</b></p><p><b> 1)、用戶表9</b></p><p><b> 2)、管理員表9</b></p><p><
5、;b> 3)、報(bào)刊表9</b></p><p><b> 6、系統(tǒng)實(shí)現(xiàn)10</b></p><p> 1)、數(shù)據(jù)庫(kù)實(shí)現(xiàn)10</p><p> 2)、系統(tǒng)測(cè)試10</p><p><b> 3)窗體構(gòu)建13</b></p><p> 三.
6、課程設(shè)計(jì)心得體會(huì)27</p><p><b> 四.參考文獻(xiàn)29</b></p><p><b> 五.附錄31</b></p><p> 報(bào)刊訂閱管理系統(tǒng)課程設(shè)計(jì)</p><p><b> 課程設(shè)計(jì)的目的</b></p><p> 開(kāi)發(fā)
7、一個(gè)既能方便訂閱人訂閱報(bào)刊,也利于操作訂閱信息的管理系統(tǒng)</p><p> 課程設(shè)計(jì)的主要內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計(jì)要求、工作量要求等) </p><p><b> 主要內(nèi)容:</b></p><p> 1.對(duì)于給定的設(shè)計(jì)題目,如何進(jìn)行分析、理解,以做到思路清晰。 2.掌握自頂而下的
8、設(shè)計(jì)方法,將大問(wèn)題進(jìn)行模塊化分解,領(lǐng)會(huì)結(jié)構(gòu)化程序設(shè)計(jì)的方法,同時(shí)深刻認(rèn)識(shí)到面向?qū)ο蟪绦蛟O(shè)計(jì)與面向過(guò)程程序設(shè)計(jì)的根本區(qū)別。3.熟練掌握VB常用控件的使用,靈活運(yùn)用各種數(shù)據(jù)類型。4.進(jìn)一步掌握在集成環(huán)境下調(diào)試程序和修改程序的方法和技巧。</p><p><b> 設(shè)計(jì)基本要求:</b></p><p> 開(kāi)發(fā)一個(gè)報(bào)刊訂閱管理的系統(tǒng)。系統(tǒng)是智能化的管理系統(tǒng),它面向所
9、有訂閱用戶,但具有安全性能。它能夠?qū)崿F(xiàn)報(bào)刊訂閱的基本功能,包括新報(bào)刊信息的登錄、錄入、訂閱、查詢、統(tǒng)計(jì)等操作。用戶合法注冊(cè)后必須輸入有效密碼才能成功進(jìn)入此系統(tǒng),可以進(jìn)行訂閱報(bào)刊,查詢信息,統(tǒng)計(jì)信息等操作。</p><p><b> 系統(tǒng)設(shè)計(jì)</b></p><p><b> 1、概念設(shè)計(jì)</b></p><p> 設(shè)
10、計(jì)概念結(jié)構(gòu)通常有四類方法:</p><p> (1)自頂向下:即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化。</p><p> (2)自底向上:即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來(lái)得到全局概念模式。</p><p> (3)逐漸擴(kuò)張:首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他的概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)。</p&g
11、t;<p> (4)混合策略:即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。其中最經(jīng)常采用的策略是自底向上的方法。即自頂向下地進(jìn)行需求分析,然后再自底向上地設(shè)計(jì)概念結(jié)構(gòu)。這個(gè)報(bào)刊訂閱系統(tǒng)就用這種方法。</p><p> 概念結(jié)構(gòu)設(shè)計(jì)的步驟第一步是進(jìn)行局部視圖的設(shè)計(jì):由于高層的數(shù)據(jù)流圖只能反映系統(tǒng)的概貌,而中層流圖能較好
12、的反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)組成。因此我們先逐一的設(shè)計(jì)分E-R圖。第二步是進(jìn)行視圖的集成:各子系統(tǒng)的E-R圖設(shè)計(jì)好之后,下一步就是要將所有的分E-R圖合成一個(gè)系統(tǒng)</p><p> 的總E-R圖,一般有兩個(gè)方式,多個(gè)分E-R圖一次集成,另一種是一次集成兩個(gè)分E-R圖。我想采用一次集成兩個(gè)分E-R圖的方式。</p><p> 2、下面所示的數(shù)據(jù)項(xiàng)</p><p>
13、; (1).定單信息,包括的數(shù)據(jù)項(xiàng)有:顧客名字,顧客地址,顧客郵編,顧客電話,顧客所訂閱的報(bào)刊名稱,訂閱日期</p><p> (2).客戶信息,包括的數(shù)據(jù)項(xiàng)有:名字,客戶電話,客戶地址,客戶郵編,客戶郵箱,密碼</p><p> (3).報(bào)刊信息,包括的數(shù)據(jù)項(xiàng)有:報(bào)刊名,報(bào)刊類別,發(fā)行地,報(bào)刊刊號(hào),報(bào)刊價(jià)格,說(shuō)明</p><p> 3、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)&
14、lt;/p><p> 本實(shí)例根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:定單信息,客戶信息,報(bào)刊信息。各個(gè)實(shí)體具體的描述E-R</p><p> 定單信息實(shí)體的E—R圖1</p><p> 圖2客戶信息實(shí)體E-R圖</p><p> 圖3報(bào)刊實(shí)體信息E-R圖</p><p> 圖4實(shí)體之間的關(guān)系E-R圖</p>
15、<p><b> 視圖的集成</b></p><p> 經(jīng)過(guò)逐步細(xì)化再進(jìn)行每?jī)蓚€(gè)一集成初步形成一個(gè)E-R圖,最后得到總體概念結(jié)構(gòu)E-R圖:</p><p> 圖5總體概念結(jié)構(gòu)E-R圖</p><p><b> 4、邏輯設(shè)計(jì)</b></p><p> 現(xiàn)在需要將上面的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)
16、轉(zhuǎn)化為ACCESS 2003數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。</p><p> 表1Paper報(bào)刊信息表</p><p> 表2order訂單表</p><p> 表三guest客戶信息表</p><p> E-R圖向關(guān)系模型的轉(zhuǎn)換</p><p> 用戶(用戶名,密碼,真實(shí)姓名,性別
17、,部門號(hào),聯(lián)系電話,聯(lián)系地址,訂閱報(bào)刊種類數(shù))</p><p> 管理員(管理員,密碼)</p><p> 報(bào)刊(報(bào)刊代號(hào),報(bào)刊名,類型,出版報(bào)社,出版周期,半年訂約價(jià),全年訂約價(jià))</p><p> 訂閱(用戶名,報(bào)刊代號(hào),訂閱年限,訂閱數(shù)量,所需金額)</p><p><b> 5、數(shù)據(jù)表</b></p
18、><p><b> 1)、用戶表</b></p><p> 表consumer)Uname是用戶名,Urealname是真實(shí)姓名,Upassword是密碼,Usex是性別, Uphone是聯(lián)系電話,Uaddress是聯(lián)系地址;subscribenum是訂閱報(bào)刊種類數(shù);</p><p><b> 圖8用戶表</b><
19、/p><p><b> 2)、管理員表</b></p><p> ?。ū韆dministrator)Aname是管理員名,Apassword是密碼</p><p><b> 圖9管理員表</b></p><p><b> 3)、報(bào)刊表</b></p><p
20、> (表magazine)Mnumber是報(bào)刊代號(hào),Mname是報(bào)刊名,Mkind是類型,Mpress出版報(bào)社,Mtime出版周期,Mhalfprice半年訂閱價(jià),Mwhole全年訂閱價(jià)</p><p><b> 圖10報(bào)刊表</b></p><p><b> 4)、訂閱表</b></p><p> ?。ū韘u
21、bscribe)Uname是用戶名(與用戶表主鍵有關(guān)系),Mnumber是報(bào)刊代號(hào)(與報(bào)刊表主鍵有關(guān)系),Syear是訂閱年限,Snumber是訂閱份數(shù),Ssum是金額;</p><p><b> 圖11訂閱表</b></p><p><b> 6、系統(tǒng)實(shí)現(xiàn)</b></p><p><b> 1)、數(shù)據(jù)庫(kù)實(shí)
22、現(xiàn)</b></p><p><b> 主要工作內(nèi)容</b></p><p> 包括實(shí)現(xiàn)報(bào)刊的添加和刪除功能,以及報(bào)刊的查詢統(tǒng)計(jì)功能:能夠以報(bào)刊發(fā)行地、發(fā)行刊號(hào)、報(bào)刊名等進(jìn)行簡(jiǎn)單及復(fù)雜查詢能夠按照月、季、年生成統(tǒng)計(jì)表。而這一部分的工作主要是和數(shù)據(jù)庫(kù)相聯(lián)系的,所以數(shù)據(jù)庫(kù)的應(yīng)用就是我所設(shè)計(jì)部分的關(guān)鍵技術(shù)。</p><p> 管理員登
23、陸是通過(guò)“l(fā)oad. lrm”來(lái)登陸的,它是通過(guò)登陸窗體輸入管理員名,密碼登錄,按確定登陸,就進(jìn)入到“manage. lrm”窗體,該窗體主要實(shí)現(xiàn)的功能是瀏覽,修改,添加,刪除,查詢等功能,主要完成的功能是報(bào)刊管理。管理員在進(jìn)入之后,如果想查看報(bào)刊的整體情況,就按瀏覽頁(yè)面,可以先瀏覽大概情況,而后可以詳細(xì)瀏覽。查看報(bào)刊的具體情況。當(dāng)管理員想知道某一商品是否存在,就可以進(jìn)行查詢功能,查看它是否存在。當(dāng)新近一種報(bào)刊時(shí)管理員要及時(shí)添加上去,顧
24、客員就要通過(guò)添加頁(yè)面進(jìn)行添加,并及時(shí)更新,以便讓顧客隨時(shí)獲得最新信息,可以購(gòu)買自己心儀的報(bào)刊。</p><p> 當(dāng)某一報(bào)刊不再發(fā)行或銷售時(shí),管理員就要通過(guò)刪除頁(yè)面把它刪除掉,方便用戶訂閱。</p><p><b> 2)、系統(tǒng)測(cè)試</b></p><p><b> 進(jìn)入報(bào)刊訂閱系統(tǒng)</b></p>&
25、lt;p><b> 圖12登陸界面圖</b></p><p> 簡(jiǎn)潔的界面,可輸入用戶名和密碼。</p><p><b> 程序核心代碼:</b></p><p><b> Load.frm</b></p><p> Private Sub ccancle_Cl
26、ick()</p><p><b> End</b></p><p><b> End Sub</b></p><p> Private Sub cok_Click()</p><p> rstemp.MoveFirst</p><p> If rstemp(&qu
27、ot;madmin") = Text1(0).Text And rstemp("mpassword") = DigestStrToHexStr(Text1(1).Text) Then</p><p> If rstemp.State = adStateOpen Then</p><p> Set rstemp = Nothing</p>&l
28、t;p><b> End If</b></p><p><b> Unload Me</b></p><p> Load MDIForm1</p><p> MDIForm1.Show vbmode</p><p><b> Else</b></p>
29、<p><b> I = I + 1</b></p><p> If I = 3 Then</p><p> MsgBox "對(duì)不起,你已經(jīng)連續(xù)輸錯(cuò)3次用戶名或密碼!系統(tǒng)將退出", 0 + 16, "系統(tǒng)退出"</p><p><b> End</b></
30、p><p><b> End If</b></p><p> MsgBox "用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入。 你還可以嘗試 " & 3 - I & " 次" & Chr(13) & _</p><p> "“友情提示:檢查大小寫”", 0 + 16,
31、 "用戶名或密碼錯(cuò)誤"</p><p> Text1(1).SetFocus</p><p><b> End If</b></p><p><b> End Sub</b></p><p> Private Sub Form_Load()</p><
32、p> adodc1.Open connectstring</p><p> If rstemp.State <> adStateOpen Then</p><p> rstemp.CursorLocation = adUseClient</p><p> rstemp.Open "select * from manage"
33、;, adodc1, adOpenKeyset, adLockPessimistic</p><p><b> End If</b></p><p><b> End Sub</b></p><p> 設(shè)有修改密碼,可輸入舊密碼來(lái)輸入新密碼。</p><p><b> 圖13系統(tǒng)設(shè)
34、置圖</b></p><p> 登入系統(tǒng)后,可查詢客戶姓名電話地址郵編等??刹樵冇嗛唸?bào)紙的名稱單價(jià)結(jié)束日期等。</p><p> Manage matte</p><p> Private Sub cclean_Click()</p><p><b> '詢問(wèn)確認(rèn)清除</b></p>
35、;<p> Dim stemp As Integer</p><p> stemp = False</p><p> stemp = MsgBox("你確定清除已經(jīng)投放完畢的過(guò)期訂單嗎?", 1 + 32 + 256, "確定清除")</p><p> If stemp = 2 Then</p>
36、;<p><b> Exit Sub</b></p><p><b> End If</b></p><p> '刪除訂閱期過(guò)了的訂單</p><p> If rso.State <> adStateOpen Then</p><p> rso.Curso
37、rLocation = adUseClient</p><p> rso.Open "select * from porder", adodc1, adOpenKeyset, adLockPessimistic</p><p><b> End If</b></p><p> rso.MoveFirst</p&g
38、t;<p> Do Until rso.EOF</p><p> If rso("time_end") < Date Then</p><p> rso.Delete</p><p><b> End If</b></p><p> rso.MoveNext</p&
39、gt;<p><b> Loop</b></p><p> MsgBox "投放完畢的過(guò)期訂單清除完成!", 0, "清除完成"</p><p><b> End Sub</b></p><p> Private Sub cok_Click()</p>
40、;<p> If rstemp.State <> adStateOpen Then</p><p> rstemp.CursorLocation = adUseClient</p><p> rstemp.Open "select * from manage", adodc1, adOpenKeyset, adLockPessimisti
41、c</p><p><b> End If</b></p><p> rstemp.MoveFirst</p><p> If rstemp("mpassword") = DigestStrToHexStr(Text1(0).Text) Then</p><p> If Text1(1).Te
42、xt <> Text1(2).Text Or Text1(1).Text = "" Then</p><p> MsgBox "新密碼兩次輸入不同!請(qǐng)重新輸入", 0, "新密碼兩次輸入不同"</p><p><b> Exit Sub</b></p><p><
43、b> End If</b></p><p><b> Else</b></p><p> MsgBox "舊密碼輸入錯(cuò)誤!", 0, "舊密碼輸入錯(cuò)誤"</p><p><b> Exit Sub</b></p><p><b&
44、gt; End If</b></p><p><b> '詢問(wèn)確認(rèn)更改</b></p><p> Dim stemp As Integer</p><p> stemp = False</p><p> stemp = MsgBox("你確定更改密碼嗎?", 1 + 32
45、 + 256, "確定更改")</p><p> If stemp = 2 Then</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> rstemp("mpassword") = Di
46、gestStrToHexStr(Text1(1).Text)</p><p> rstemp.Update</p><p> MsgBox "更改密碼成功!", 0, "更改密碼成功"</p><p><b> End Sub</b></p><p> Private Su
47、b Frame1_DragDrop(Source As Control, X As Single, Y As Single)</p><p><b> End Sub</b></p><p> Private Sub Label1_Click(Index As Integer)</p><p><b> End Sub</
48、b></p><p><b> 圖14進(jìn)入開(kāi)始界面</b></p><p><b> Mdiform</b></p><p> Private Sub 報(bào)紙訂閱情況查詢_Click()</p><p> Load Form5</p><p> Form5.Sh
49、ow vbmode</p><p><b> End Sub</b></p><p> Private Sub 報(bào)紙管理_Click()</p><p> Load Form1</p><p> Form1.Show vbmode</p><p><b> End Sub<
50、;/b></p><p> Private Sub 訂閱報(bào)紙_Click()</p><p> Load Form3</p><p> Form3.Show vbmode</p><p><b> End Sub</b></p><p> Private Sub 客戶訂閱情況查詢_
51、Click()</p><p> Load Form6</p><p> Form6.Show vbmode</p><p><b> End Sub</b></p><p> Private Sub 客戶管理_Click()</p><p> Load Form2</p>
52、<p> Form2.Show vbmode</p><p><b> End Sub</b></p><p> Private Sub 退出_Click()</p><p> Dim strsql As String</p><p> strsql = "delete * from su
53、b_temp"</p><p> adodc1.Execute (strsql)</p><p><b> End</b></p><p><b> End Sub</b></p><p> Private Sub 系統(tǒng)設(shè)置_Click()</p><p>
54、 Load Form8</p><p> Form8.Show vbmode</p><p><b> End Sub</b></p><p> 圖15可查閱報(bào)紙訂閱情況。</p><p> 圖16報(bào)紙訂閱情況查詢</p><p> Private Sub cclean_Click()
55、</p><p> For I = 1 To 4</p><p> Text1(I) = ""</p><p><b> Next I</b></p><p> Combo1.Text = ""</p><p> 'Combo1.ListI
56、ndex = -1</p><p> Combo2.Clear</p><p><b> End Sub</b></p><p> Private Sub cclose_Click()</p><p> Set rsseap = Nothing</p><p><b> Unl
57、oad Me</b></p><p><b> End Sub</b></p><p> Private Sub Combo1_Click()</p><p> Combo2.Clear</p><p> If IsDate(Combo1) Then</p><p> If
58、CDate(Year(Date) & "-4-2") > Combo1.Text Then</p><p> Combo2.AddItem CDate(Year(Date) & "-6-30")</p><p><b> End If</b></p><p> If CDate
59、(Year(Date) & "-7-2") > Combo1.Text Then</p><p> Combo2.AddItem CDate(Year(Date) & "-9-30")</p><p><b> End If</b></p><p> If CDate(Year
60、(Date) & "-10-2") > Combo1.Text Then</p><p> Combo2.AddItem CDate(Year(Date) & "-12-31")</p><p><b> End If</b></p><p> If CDate(Year(Da
61、te) + 1 & "-1-2") > Combo1.Text Then</p><p> Combo2.AddItem CDate(Year(Date) + 1 & "-3-31")</p><p><b> End If</b></p><p> If CDate(Year
62、(Date) + 1 & "-4-2") > Combo1.Text Then</p><p> Combo2.AddItem CDate(Year(Date) + 1 & "-6-30")</p><p><b> End If</b></p><p> If CDate(Y
63、ear(Date) + 1 & "-7-2") > Combo1.Text Then</p><p> Combo2.AddItem CDate(Year(Date) + 1 & "-9-30")</p><p><b> End If</b></p><p> If CDat
64、e(Year(Date) + 1 & "-10-2") > Combo1.Text Then</p><p> Combo2.AddItem CDate(Year(Date) + 1 & "-12-31")</p><p><b> End If</b></p><p><
65、b> End If</b></p><p><b> End Sub</b></p><p> Private Sub csearch_Click()</p><p> Dim strsql As String</p><p> strsql = "select paper_info
66、.pname,paper_info.ppublish,client_info.cname,paper_info.pprice,"</p><p> strsql = strsql & "porder.time_start,porder.time_end,porder.ono,(paper_info.pprice*porder.ono) as osum "</p>
67、<p> strsql = strsql & "from paper_info,client_info,porder where [paper_info.pid]=[porder.pid]"</p><p> strsql = strsql & "and [client_info.cid]=[porder.cid] and "</p&
68、gt;<p> strsql = strsql & "paper_info.pname like " & "'%" & Trim(Text1(1).Text) & "%' and "</p><p> strsql = strsql & "paper_info.ppubl
69、ish like " & "'%" & Trim(Text1(2).Text) & "%'"</p><p> If IsDate(Combo1) Then</p><p> strsql = strsql & " and porder.time_start = #"
70、& CDate(Combo1) & "#"</p><p><b> End If</b></p><p> If IsDate(Combo2) Then</p><p> strsql = strsql & " and porder.time_end =#" & C
71、Date(Combo2) & "#"</p><p><b> End If</b></p><p> Set rsseap = New ADODB.Recordset</p><p> rsseap.CursorLocation = adUseClient</p><p> rsse
72、ap.Open strsql, adodc1, adOpenKeyset, adLockPessimistic</p><p> Set DataGrid1.DataSource = rsseap</p><p> DataGrid1.Refresh</p><p> '計(jì)算總訂購(gòu)量,總金額</p><p> If rssea
73、p.RecordCount > 0 Then</p><p> Dim varono As Integer</p><p> varono = 0</p><p> rsseap.MoveFirst</p><p> For I = 1 To rsseap.RecordCount</p><p> va
74、rono = varono + rsseap("ono")</p><p> rsseap.MoveNext</p><p><b> Next I</b></p><p> Text1(3).Text = varono</p><p> Dim varosum As Integer</
75、p><p> varosum = 0</p><p> rsseap.MoveFirst</p><p> For n = 1 To rsseap.RecordCount</p><p> varosum = varosum + rsseap("osum")</p><p> rsseap.M
76、oveNext</p><p><b> Next n</b></p><p> Text1(4).Text = varosum</p><p><b> End If</b></p><p><b> End Sub</b></p><p>
77、 Private Sub DataGrid1_Click()</p><p> If rsseap.RecordCount > 0 Then</p><p> For I = 1 To 2</p><p> Set Text1(I).DataSource = rsseap</p><p> Text1(I).DataField
78、= rsseap.Fields(I - 1).Name</p><p><b> Next I</b></p><p> Set Combo1.DataSource = rsseap</p><p> Combo1.DataField = rsseap.Fields(4).Name</p><p> Set Co
79、mbo2.DataSource = rsseap</p><p> Combo2.DataField = rsseap.Fields(5).Name</p><p><b> End If</b></p><p><b> End Sub</b></p><p> Private Sub F
80、orm_Load()</p><p> If rsseap.State <> adStateOpen Then</p><p> Dim strsql As String</p><p> strsql = "select paper_info.pname,paper_info.ppublish,client_info.cname,pap
81、er_info.pprice,"</p><p> strsql = strsql & "porder.time_start,porder.time_end,porder.ono,(paper_info.pprice*porder.ono) as osum "</p><p> strsql = strsql & "from pa
82、per_info,client_info,porder where [paper_info.pid]=[porder.pid]"</p><p> strsql = strsql & "and [client_info.cid]=[porder.cid] and "</p><p> strsql = strsql & "pape
83、r_info.pname like " & "'%" & Trim(Text1(1).Text) & "%' and "</p><p> strsql = strsql & "paper_info.ppublish like " & "'%" & T
84、rim(Text1(2).Text) & "%'"</p><p> If IsDate(Combo1) Then</p><p> strsql = strsql & " and porder.time_start = #" & CDate(Combo1) & "#"</p>
85、;<p><b> End If</b></p><p> If IsDate(Combo2) Then</p><p> strsql = strsql & " and porder.time_end =#" & CDate(Combo2) & "#"</p><
86、p><b> End If</b></p><p> rsseap.CursorLocation = adUseClient</p><p> rsseap.Open strsql, adodc1, adOpenKeyset, adLockPessimistic</p><p><b> End If</b>
87、</p><p> Set DataGrid1.DataSource = rsseap</p><p> '初始化Combo1數(shù)據(jù)</p><p> If CDate(Year(Date) & "-4-1") > Date Then</p><p> Combo1.AddItem CDate(
88、Year(Date) & "-04-1")</p><p><b> End If</b></p><p> If CDate(Year(Date) & "-7-1") > Date Then</p><p> Combo1.AddItem CDate(Year(Date) &
89、amp; "-07-1")</p><p><b> End If</b></p><p> If CDate(Year(Date) & "-10-1") > Date Then</p><p> Combo1.AddItem CDate(Year(Date) & "
90、-10-1")</p><p><b> End If</b></p><p> Combo1.AddItem CDate(Year(Date) + 1 & "-01-1")</p><p> Combo1.AddItem CDate(Year(Date) + 1 & "-04-1&
91、quot;)</p><p> Combo1.AddItem CDate(Year(Date) + 1 & "-07-1")</p><p> Combo1.AddItem CDate(Year(Date) + 1 & "-10-1")</p><p> '計(jì)算總訂購(gòu)量,總金額</p>
92、<p> If rsseap.RecordCount > 0 Then</p><p> Dim varono As Integer</p><p> varono = 0</p><p> rsseap.MoveFirst</p><p> For I = 1 To rsseap.RecordCount<
93、/p><p> varono = varono + rsseap("ono")</p><p> rsseap.MoveNext</p><p><b> Next I</b></p><p> Text1(3).Text = varono</p><p> Dim va
94、rosum As Integer</p><p> varosum = 0</p><p> rsseap.MoveFirst</p><p> For n = 1 To rsseap.RecordCount</p><p> varosum = varosum + rsseap("osum")</p>
95、<p> rsseap.MoveNext</p><p><b> Next n</b></p><p> Text1(4).Text = varosum</p><p><b> End If</b></p><p><b> End Sub</b>&
96、lt;/p><p> 圖16客戶資料管理圖</p><p> Private Sub cadd_cancel_Click()</p><p> cupdate.Enabled = True</p><p> cdelete.Enabled = True</p><p> csearch.Enabled = Tru
97、e</p><p> cclean.Enabled = True</p><p> csave.Enabled = False</p><p> cadd_cancel.Enabled = False</p><p> Text1(1).Locked = True</p><p><b> End
98、Sub</b></p><p> Private Sub cadd_Click()</p><p> Text1(0) = ""</p><p> For I = 0 To 4</p><p> Set Text1(I).DataSource = Nothing</p><p>
99、<b> Next I</b></p><p> Text1(0).SetFocus</p><p> csave.Enabled = True</p><p> cadd_cancel.Enabled = True</p><p> Text1(1).Locked = False</p><
100、;p> csearch.Enabled = False</p><p> cclean.Enabled = False</p><p> cupdate.Enabled = False</p><p> cdelete.Enabled = False</p><p><b> End Sub</b><
101、;/p><p> Private Sub cclean_Click()</p><p> For I = 0 To 4</p><p> Text1(I) = ""</p><p><b> Next I</b></p><p><b> End Sub<
102、/b></p><p> Private Sub cclose_Click()</p><p> Set rsmc = Nothing</p><p><b> Unload Me</b></p><p><b> End Sub</b></p><p> P
103、rivate Sub cdelete_Click()</p><p><b> '詢問(wèn)確認(rèn)刪除</b></p><p> Dim stemp As Integer</p><p> stemp = False</p><p> stemp = MsgBox("你確定刪除" &
104、Text1(1) & "這個(gè)客戶資料嗎?", 1 + 32 + 256, "確定刪除客戶信息")</p><p> If stemp = 2 Then</p><p><b> Exit Sub</b></p><p><b> End If</b></p>
105、<p><b> '刪除客戶資料</b></p><p> If Text1(0) = "" Then</p><p> MsgBox "您尚未選擇需要?jiǎng)h除的客戶資料,請(qǐng)選擇一條需要?jiǎng)h除的客戶資料", 0 + 16, "選擇客戶資料"</p><p><
106、;b> Exit Sub</b></p><p><b> Else</b></p><p> Dim strsql As String</p><p> strsql = "select porder.oid from porder,client_info "</p><p&g
107、t; strsql = strsql & "where [client_info.cid]=[porder.cid]"</p><p> strsql = strsql & " and client_info.cname='" & rsmc("cname") & "'"</p&
108、gt;<p> strsql = strsql & " and client_info.cphone='" & rsmc("cphone") & "'"</p><p> strsql = strsql & " and client_info.caddress='&quo
109、t; & rsmc("caddress") & "'"</p><p> strsql = strsql & " and client_info.ccode='" & rsmc("ccode") & "'"</p><p>
110、 rstemp.CursorLocation = adUseClient</p><p> rstemp.Open strsql, adodc1, adOpenKeyset, adLockPessimistic</p><p> If rstemp.RecordCount < 1 Then</p><p> rsmc.Delete</p>
111、<p> MsgBox "刪除客戶資料成功!", vbOKOnly, "刪除客戶資料成功"</p><p><b> Else</b></p><p> MsgBox "無(wú)法刪除,此客戶還有訂購(gòu)的報(bào)紙仍在投送或尚未投送", 0 + 16, "無(wú)法刪除客戶資料"</p&
112、gt;<p><b> End If</b></p><p> Set rstemp = Nothing</p><p><b> End If</b></p><p><b> End Sub</b></p><p> Private Sub csav
113、e_Click()</p><p> '判斷文本框是否為空</p><p> If Text1(0) <> "" Then</p><p> MsgBox "新添資料前請(qǐng)點(diǎn)擊“添加客戶資料”", 0 + 16, "添加客戶資料"</p><p><b&
114、gt; Exit Sub</b></p><p> ElseIf Text1(1) = "" Then</p><p> MsgBox "請(qǐng)輸入“客戶姓名”,它不可以為空!", vbOKOnly, "輸入“客戶姓名”"</p><p> Text1(1).SetFocus</p&g
115、t;<p><b> Exit Sub</b></p><p> ElseIf Text1(2) = "" Then</p><p> MsgBox "請(qǐng)輸入“客戶電話”,它不可以為空!", vbOKOnly, "輸入“客戶電話”"</p><p> Text1(
116、2).SetFocus</p><p><b> Exit Sub</b></p><p> ElseIf Text1(3) = "" Then</p><p> MsgBox "請(qǐng)輸入“客戶地址”,它不可以為空!", vbOKOnly, "輸入“客戶地址”"</p>
117、<p> Text1(3).SetFocus</p><p><b> Exit Sub</b></p><p> ElseIf Text1(4) = "" Then</p><p> MsgBox "請(qǐng)輸入“客戶郵編”,它不可以為空!", vbOKOnly, "輸入“客戶
118、郵編”"</p><p> Text1(4).SetFocus</p><p><b> Exit Sub</b></p><p> ElseIf Asc(Trim(Text1(1).Text)) >= 0 Then</p><p> MsgBox "“客戶姓名”必須為中文",
119、 vbOKOnly, "“客戶姓名”必須為中文"</p><p> Text1(1).SetFocus</p><p> Text1(1).SelStart = 0</p><p> Text1(1).SelLength = Len(Text1(1).Text)</p><p><b> Exit Sub
120、</b></p><p> ElseIf Not IsNumeric(Trim(Text1(2).Text)) Then</p><p> MsgBox "“客戶電話”必須為數(shù)字", vbOKOnly, "“客戶電話”必須為數(shù)字"</p><p> Text1(2).SetFocus</p>&
121、lt;p> Text1(2).SelStart = 0</p><p> Text1(2).SelLength = Len(Text1(2).Text)</p><p><b> Exit Sub</b></p><p> ElseIf Asc(Trim(Text1(3).Text)) >= 0 Then</p>
122、<p> MsgBox "“客戶地址”必須為中文", vbOKOnly, "“客戶地址”必須為中文"</p><p> Text1(3).SetFocus</p><p> Text1(3).SelStart = 0</p><p> Text1(3).SelLength = Len(Text1(3).T
123、ext)</p><p><b> Exit Sub</b></p><p> ElseIf Not IsNumeric(Trim(Text1(4).Text)) Then</p><p> MsgBox "“客戶郵編”必須為數(shù)字", vbOKOnly, "“客戶郵編”必須為數(shù)字"</p>
124、;<p> Text1(4).SetFocus</p><p> Text1(4).SelStart = 0</p><p> Text1(4).SelLength = Len(Text1(4).Text)</p><p><b> Exit Sub</b></p><p> ElseIf ise
125、xist(rsmc("cname"), Trim(Text1(1).Text), rsmc.RecordCount) = True Then</p><p> '當(dāng)存在相同姓名時(shí),詢問(wèn)是否添加</p><p> Dim stemp As Integer</p><p> stemp = False</p><p&
126、gt; stemp = MsgBox("姓名為" & Text1(1) & "的客戶資料已存在你確定添加嗎?", 1 + 32 + 256, "確定添加客戶資料")</p><p> If stemp = 2 Then</p><p><b> Exit Sub</b></p>
127、;<p> ElseIf isexist(rsmc("cphone"), Trim(Text1(2).Text), rsmc.RecordCount) = True _</p><p> And isexist(rsmc("caddress"), Trim(Text1(3).Text), rsmc.RecordCount) = True _</p&g
128、t;<p> And isexist(rsmc("ccode"), Trim(Text1(4).Text), rsmc.RecordCount) = True Then</p><p> MsgBox "客戶姓名,電話,地址,郵編與要添加的客戶資料完全相同的記錄已存在,無(wú)需添加", 0 + 16, "重復(fù)客戶資料"</p>
129、<p><b> Exit Sub</b></p><p><b> End If</b></p><p><b> End If</b></p><p><b> '保存新客戶資料</b></p><p> rsmc.Add
130、New</p><p> rsmc("cname") = Trim(Text1(1).Text)</p><p> rsmc("cphone") = Trim(Text1(2).Text)</p><p> rsmc("caddress") = Trim(Text1(3).Text)</p>
131、;<p> rsmc("ccode") = Trim(Text1(4).Text)</p><p> rsmc.Update</p><p> cupdate.Enabled = True</p><p> cdelete.Enabled = True</p><p> csave.Enabled
132、= False</p><p> cadd_cancel.Enabled = False</p><p> Text1(1).Locked = True</p><p> MsgBox "新增客戶資料已經(jīng)保存成功!", vbOKOnly, "新增客戶資料成功"</p><p><b>
133、 End Sub</b></p><p> Private Sub csearch_Click()</p><p> For I = 0 To 4</p><p> Set Text1(I).DataSource = Nothing</p><p><b> Next I</b></p>
134、<p> Dim stemp As String</p><p> stemp = "select * from client_info where client_info.cname like " & "'%" & Trim(Text1(1).Text) & "%'"</p><
135、;p> stemp = stemp & " And client_info.cphone Like " & "'%" & Trim(Text1(2).Text) & "%'"</p><p> stemp = stemp & " And client_info.caddress
136、Like " & "'%" & Trim(Text1(3).Text) & "%'"</p><p> stemp = stemp & " And client_info.ccode Like " & "'%" & Trim(Text1(4).Text
137、) & "%'"</p><p> Set rsmc = New ADODB.Recordset</p><p> rsmc.CursorLocation = adUseClient</p><p> rsmc.Open stemp, adodc1, adOpenKeyset, adLockPessimistic</p
138、><p> Set DataGrid1.DataSource = rsmc</p><p> DataGrid1.Refresh</p><p><b> End Sub</b></p><p> Private Sub cupdate_Click()</p><p><b> &
139、#39;詢問(wèn)確認(rèn)修改</b></p><p> Dim stemp As Integer</p><p> stemp = False</p><p> stemp = MsgBox("你確定更改" & Text1(1) & "這個(gè)客戶資料嗎?這將會(huì)更改所有此客戶的訂閱信息", 1 + 32
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)-報(bào)刊訂閱管理系統(tǒng)
- c_課程設(shè)計(jì)——報(bào)刊訂閱管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---報(bào)刊訂閱管理系統(tǒng)
- 報(bào)刊訂閱管理系統(tǒng)
- 報(bào)刊訂閱管理系統(tǒng)
- 報(bào)刊訂閱管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)報(bào)告--企業(yè)報(bào)刊訂閱管理系統(tǒng)
- 報(bào)刊訂閱管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- c++_課程設(shè)計(jì)--雜志訂閱管理系統(tǒng)
- c++ 課程設(shè)計(jì)--雜志訂閱管理系統(tǒng)
- 報(bào)刊訂閱管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 【全套設(shè)計(jì)】java+sql報(bào)刊訂閱管理系統(tǒng)
- 雜志訂閱系統(tǒng)課程設(shè)計(jì)2
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--設(shè)計(jì)一個(gè)訂戶訂閱報(bào)刊的應(yīng)用系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--企業(yè)報(bào)刊管理系統(tǒng)
- 69949.電子報(bào)刊訂閱管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 中國(guó)報(bào)刊(傳媒)信息庫(kù)——全國(guó)報(bào)刊訂閱查詢輔助系統(tǒng).pdf
- 季度報(bào)刊訂閱登記表
- web課程設(shè)計(jì)--課程管理系統(tǒng)
- 《面向?qū)ο笳n程設(shè)計(jì)》課程設(shè)計(jì)---媒體管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論