課程設計報告報告vb家庭理財管理系統_第1頁
課程設計報告報告vb家庭理財管理系統_第2頁
課程設計報告報告vb家庭理財管理系統_第3頁
課程設計報告報告vb家庭理財管理系統_第4頁
課程設計報告報告vb家庭理財管理系統_第5頁
已閱讀5頁,還剩59頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-PAGE . z. -. .可修編.師大學物電學院課程設計報告課 程 名 稱: 計算機程序設計實訓題 目: 家庭理財管理系統專 業 班 級: 電子科學與技術0831學 生 姓 名:海龍學 生 學 號:08223013日 期:2010-12-16指 導 教 師:紀平物電學院教務部印制說明:1、報告中的第一、二、三項由學生在課程設計開始前填寫,由指導教師指導并確認簽字。2、學生成績由指導教師根據學生的設計情況給出各項分值及總評成績,并填寫成績評定表。3、所有學生必須參加課程設計的答辯環節,凡不參加答辯者,其成績一律按不及格處理。答辯小組成員應由2人及以上教師組成。答辯后學生根據答辯情況填寫答辯記

2、錄表。4、報告正文字數一般應不少于3000字,也可由指導教師根據本門課程設計的情況另行規定。5、平時表現成績低于6分的學生,取消答辯資格,其該課程設計成績按不及格處理。6、課程設計完成后,由指導教師根據完成情況寫出總結。7、此表格式為師大學物理與電子工程學院提供的基本格式,指導教師可根據本門課程設計的特點及容做適當的調整。一、課程設計目的、任務和容要求:計算機語言程序設計是一門以編程實踐為主的專業課,目的在于培養學生利用計算機語言進行軟件開發所必需的基本思想和基本技能,進一步提高綜合應用計算機語言的各種編程知識和技巧進行程序設計的能力,通過本次課程設計,學生應能達到具備設計功能較為復雜的應用程

3、序的能力,同時培養學生自主學習和獨立創新的精神。任務如下: 1進行需求分析和概要設計,給出流程圖。 2寫出詳細設計,熟悉其中采用的關鍵技術。3給出具體的編碼實現并調試。4寫課程設計報告提交源程序。容要求:設計并完成軟件系統。要求:1應具有簡潔友好的用戶界面。2要求軟件系統的功能完整。3要求程序具備正確性,可讀性和運行的高效性。二、進度安排:第13天: 查找資料,進行需求分析和概要設計;第46天: 各模塊的詳細設計;第712天: 軟件實現與調試;第1314天:寫課程設計報告并提交源程序。三、主要參考文獻:1白曉勇.Visual Basic案例精編M .:清華大學, 20072吳昌平.Visual

4、 Basic6.0程序設計M:人民郵電2008 指導教師簽字:年月日-. z. -. .可修編.目 錄摘 要IIAbstractII1 概述11.1基本思路12 設計方案簡述22.1 基本方法2 2.2程序流程圖 23 詳細設計43.1 設計架構44設計結果及分析54.1數據庫配置54.2 分支模塊55總結 125.1設計體會與總結12參考文獻 13.附錄 主要程序代碼14摘 要家庭理財管理信息系統可以對家庭的現金、銀行存款、應收款和欠款進行管理,操作流程簡介,使記賬不再是會計的專利,統計分析全面,讓用戶對家庭財務狀況一目了然。家庭理財管理系統使用的是VB編程,VB語言的突出特點是可視化設計,

5、它為用戶提供了大量的界面元素容易開發。利用ADO控件可以實現數據庫的連接,實現管理數據庫的操作。VB語言通過事件來觸發執行相應的事件過程,這就是事件驅動。所謂事件,就是對操作對象(比如窗體,控件等)進行操作(比如鼠標單擊),從而產生的相應的響應。事件是窗體或控件識別的動作,在關聯的事件過程中存在代碼編輯器中。家庭管理系統就是基于事件操作的。本設計是基于vb的家庭理財管理系統,利用其提供的各種面向對象的開發工具實現個人家庭理財,從而可以有效地管理家庭收入與支出,解決了紙質化的理財,應用電腦幫助用戶進行科學理財。關鍵詞:可視化界面;ADO控件;模塊設計 AbstractTheprogramisde

6、signedby a language called Visual Basic,which is good for avisualized program.The project is called a familyfinancial management which can help you control your money more effiectly.The language of Visual Basic is a very poewer language for puter programming especially for the visualized screen .VB

7、language through the event to trigger the e*ecution of the correspondingevent procedure, which is based event driven. The so-called events, that isthe operating object (such as forms, controls, etc.) to operate (such as a mouse click), to produce the appropriate response. Event is a form or control

8、action identified in the course of events associated with a code editor. Home management system is event-based operations.Keywords:video ; ADO control active ;model designing-. z. .可修編.1 概述1.1 基本思路本設計是基于vb的家庭理財管理系統,利用其提供的各種面向對象的開發工具實現個人家庭理財,從而可以有效地管理家庭收入與支出,解決了紙質化的理財,應用電腦幫助人民進行科學理財,形象生動,具有一定的可實用性家庭理

9、財系統是一種管理系統,開發容主要是后臺的數據庫建立、維護以及前臺的相應應用程序的開發。它應該能夠為每個家庭的管理者提供充足的信息和快捷的查詢手段,大大的方便家庭的管理者的合理理財。作為計算機應用的一部分,使用計算機對家庭理財進行管理,具有著手工管理所無法比擬的優點,如:檢索迅速、查找方便、可靠性高、存儲量大、性好、壽命長、成本低等。這些優點能夠極提高家庭財務管理的效率,也是家庭理財的科學化、正規化管理,與先進科學技術接軌的重要條件。VB的主窗口由標題欄、菜單欄、工具欄、工具箱、工程窗口、工程資源管理器、屬性窗口、窗體布局窗口組成。工程資源管理器窗口中的文件分為:窗體文件(.frm)、標準模塊文

10、件(.bas)、類模塊文件(.cls)、工程文件(.vbp)、工程組文件(.vbg)和資源文件(.res)。本家庭理財管理系統就是通過建立許多窗口文件,然后將這些窗口文件組合成一個模塊建立一個工程。通過ADO控件,結合SQL語言又可以實現數據庫的操作。家庭理財管理系統主要使用于家庭對財務狀況的管理和查詢,記錄日常的收支情況,對銀行賬戶狀態的管理,家庭對外債關系的管理以及家庭的投資理財。開發工具主要采用Visual Basic 6.0 Microsoft Access 2003,VB主要是用來實現系統管理、理財項目管理、日常管理、查詢管理、修改管理、統計報告管理、投資理財管理這七個功能的??傮w見

11、圖1-1數據庫登陸信息管理數據庫綜合信息管理退出信息管理圖1-1 思路圖2設計方案簡述2.1基本方法本設計利用了數據庫報表,采用ADO控件實現了家庭理財管理系統的所有可視化界面,類似于MFC編寫應用程序向導,ADO對象可以在所有支持和OLE的平臺上使用,如VB,VC+等等。OLE DB是一種低層數據訪問界面接口,它是一套部件對象模型()接口,支持大量可用于數據源的DBMS功能,利用SQL語言,連接數據庫。SQL全稱是結構化查詢語言”,最最早的是IBM的圣約瑟研究室開發的一種查詢語言。建立了表格,并在表格中插入了所需要的數據。臺數據庫使用Access,前臺開發工具使用Visual Basic。本

12、系統采用目前比較流行的ADO數據訪問技術,并將每個數據庫表的字段和操作封裝到類中,從而成功地將面向對象的程序設計思想應用到數據庫應用程序設計中。這也是本系統的特色和優勢。具體如圖2-1整體布局。圖2-1 整體布局2.2程序流程圖基于整體布局情況和程序運行結果及步驟,家庭理財管理系統的登陸界面是一個密碼登陸系統,此界面與程序主題界面是分開的,提示用戶輸入密碼,并根據用戶預先設置的密碼進行核對,如果兩次輸入密碼不正確就會自動退出(次數可以設置)。進入登陸界面后,就進行財產管理,根據具體情況可以具體處理并畫出餅形圖,形象直觀,科學導用戶理財。當用戶單擊退出界面后,程序便退出系統。具體如圖2-2家庭理

13、財管理程圖。3詳細設計3.1設計架構基本設計框架如圖3-1設計架構。家庭理財系統管理理財分析管理系統借還錢管理系統銀行儲蓄管理系統系統管理基礎數據管理系統日常收支管理系統圖3-1 設計架構 設計框架簡述家庭理財管理系統主要由六個分支管理系統構成,系統管理又分為:導出數據庫,導入數據庫,重新登錄,退出?;A數據和管理系統又分為:收支項目管理,家庭成員管理。日常收支管理系統又分為:日常收入,日常支出。銀行儲蓄管理系統又分為:活期賬戶,定期儲蓄。借還錢管理系統又分為:借入款,借出款。理財分析又分為:查詢明細,理財報告。4設計結果及分析4.1數據庫配置因為采用的是Microsoft Access數據庫

14、,所以配置非常簡單。只要保證數據庫的配置路徑正確就可以了。此家庭理財管理系統用的路定是:Str_path = App.Path & & databaseMoneyMIS.mdb如圖4-1所示。 圖4-1 數據庫4.2分支模塊各分支模塊設計Visual Basic 語言程序設計是按窗體分類后進行模塊化設計的,所以此家庭理財管理系統按照每個模塊的功能逐一添加了相應的窗體后,在每個模塊中添加相應的函數,然后連接數據庫,使得每個模塊的添加,修改,刪除都能隨時保持與數據庫的及時更新,從而實現智能管理。(1)密碼系統可以修改密碼,輸入舊密碼,然后輸入新密碼,再次輸入新的密碼后,如果新密碼與原密碼相同,則可

15、以修改密碼否則提示密碼不一致。VB語言通過事件來觸發執行相應的事件過程,這就是事件驅動。所謂事件,就是對操作對象(比如窗體,控件等)進行操作(比如鼠標單擊),從而產生的相應的響應。這樣我們輸入密碼后,如果正確就可以進入系統。事件是窗體或控件識別的動作,在關聯的事件過程中存在代碼編輯器中。如圖4-2-1所示。 圖4-2-1 密碼登陸(2)添加家庭成員可以添加修改刪除成員列表,自動更新數據庫,使得處理非常方便簡潔。利用ADO控件連接數據庫,使用SQL語言查詢化結構語言直接操縱數據庫。如圖4-2-2所示。 圖4-2-2 添加家庭成員(3)日常收入與支出可以添加日期,方式,金額,項目,去向,人員,備注

16、等,然后以表格形式呈現出來。當然也可以添加,刪除,修改,保存.。如圖4-2-3和圖4-2-4所示。 圖4-2-3 日常收入 圖4-2-4 日常支出 借入款與借出款系統自動彈出一個對話框,顯示當前記錄,得款人,借款金額,出借人,借款日期,借款原因.,可以添加,修改,保存。借款原因這一項,可以幫助家庭進行反思,總結覺悟,從而有效利用家庭財產,受利益最大化。借入款與借出款配合,幫助家庭理財管理系統,然用戶可以一目了然的看出具體的借錢情況,從而可以規劃一下具體的錢財,有助于用戶實時了解本年,或是本月具體情況,并可以根據具體情況做出具體的處理。在對話框我們給出了具體的記錄,用戶則根據具體的記錄作出判斷。

17、具體如圖4-2-5,4-2-6所示。 圖4-2-5 借入款 圖4-2-6 借出款查詢查詢項目可以分為日常收入與日常支出。同時還可以按日期或是方式或是金額或是項目。系統自動會根據操作者所選的具體規則在對話框的下半部分顯示具體的日常收入與日常支出。如圖4-2-7,4-2-8所示。 圖4-2-7 日常支出 圖4-2-8 日常收入餅圖餅圖可以根據一定的比例形象的描繪出收入情況與支出情況,可以按照給定的比例形象生動的繪制出一定的餅狀圖形,采用不同的顏色,根據實際的數據,按照先后一定的順序,配合表格,畫出圖形。餅圖畫出之后,可以選擇具體的統計方式,可以按照人員統計方式進行統計,當然也可以按照具體的項目進行

18、統計。應用兩種不同的統計方式,可以滿足用戶不同的方面,也可以滿足用戶的不同側重點,本次餅圖只是統計了2010年的不同情況,具體的統計哪一年和那一個月是由在窗體中添加不同代碼加以實現的,通過不同代碼,可以實現不同年月份的統計統計餅圖也可以根據收入情況或者是支出情況是支出情況作出調整。具體情況如圖4-2-9所示。 圖4-2-9 餅圖5總結51設計體會與總結通過這十幾天的計算機課程設計,我學會了將一種技能轉移到另外一種技能上的本領。首先要感我的指導老師紀平老師,通過老師的VC+及MFC的課程講解,讓我學會的不僅僅是一種語言,更是一種編程的思想與算法。我編程主要是通過VB,通過對圖書館資料和網上的資料

19、查詢,我對VB有了一些初步的認識,通過此次課程設計更加深了我運用VB語言,利用ADO控件操作數據庫的能力。同時我想在新時代的大背景下,我們運用程序的設計可以實現許多無紙化管理。這更符合環保的要求。由此可見計算機程序實訓培養了我們學生實際的操作能力,這也符合新世紀環保節約的要求,同時意義也是很重大的。通過此次設計我對VB也有了更全面的認識。VB語言通過事件來觸發執行相應的事件過程,這就是事件驅動。所謂事件,就是對操作對象(比如窗體,控件等)進行操作(比如鼠標單擊),從而產生的相應的響應。VB的主要特點:1可視化編程2事件驅動3面向對象4數據庫管理功能 5結構化程序設計語言。我想在以后的學習及工作

20、中我會更加努力學習,不斷豐富我的計算機程序設計能力。參考文獻1白曉勇.Visual Basic案例精編M .:清華大學, 20072吳昌平.Visual Basic6.0程序設計M:人民郵電2008附錄 主要程序代碼(1)公共模塊設計代碼Public Str_path As StringPublic ame As String 登陸時傳用戶名Public Cdate1 As String 傳日期(收入情況列表)Public Cdate2 As String 傳日期Public AA As Boolean 判斷是否選擇月份ADO編程模型連接數據庫Public Function Connectst

21、ring() As StringDim Str_path As StringStr_path = App.Path & & databaseMoneyMIS.mdbConnectstring = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & Str_path & ;Persist Security Info=FalseEnd FunctionADO編程模型連接數據庫Public Function E*eCutesql(ByVal Sql As String, Msgstring As String) As ADODB.Recordset Dim

22、 n As ADODB.Connection Dim Rst As ADODB.Recordset Dim Stokens() As String 數組 On Error GoTo e*ecutesql_error Stokens = Split(Sql) 將sql語句按關鍵字保存在數組中 Set n = New ADODB.Connection n.Open Connectstring If InStr(INSERT,DELETE,UPDATE, UCase$(Stokens(0) Then n.E*ecute Sql Msgstring = Stokens(0) & 查詢成功 Else S

23、et Rst = New ADODB.Recordset Rst.Open Trim$(Sql), n, adOpenKeyset, adLockOptimistic 重服務器中提取符合要求的記錄集 Set E*eCutesql = Rst Msgstring = 查詢到 & Rst.RecordCount & 條記錄 End Ife*ecutesql_e*it: Set Rst = Nothing 釋放記錄集 Set n = Nothing 釋放連接語句 E*it Functione*ecutesql_error: Msgstring = 查詢錯誤: & Err.Description Re

24、sume e*ecutesql_e*itEnd Function(2)借入借出模塊代碼Dim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Str_te*t As StringDim strflag As StringPrivate Sub cmd_close_Click() Unload MeEnd SubPrivate Sub cmd_add_Click() t*t_man.Locked = False t*t_way.Locked = False t*t_money.Locked = False bo1.Lo

25、cked = False Check1.Enabled = True DTPicker1.Enabled = True t*t_man.Te*t = t*t_way.Te*t = t*t_money.Te*t = bo1.Te*t = strflag = 添加 Cmdsave.Enabled = TrueEnd SubPrivate Sub cmd_del_Click() Dim A As Boolean A = MsgBo*(是否真的要刪除這條記錄?, vbOKCancel + 32 + 256, 刪除) If A = True Then E*eCutesql delete from 借入

26、where 得款人= & t*t_man.Te*t & , Str_te*t MsgBo* 記錄已刪除!, , 刪除 If Mydb.RecordCount 0 Then Mydb.MoveNe*t If Mydb.EOF Then Mydb.MoveLast Call Db Call Bangding Label7.Caption = Mydb.RecordCount End If End IfEnd SubPrivate Sub cmd_edit_Click() On Error Resume Ne*t Dim A As Boolean t*t_man.Locked = False t*t

27、_way.Locked = False t*t_money.Locked = False bo1.Locked = False Check1.Enabled = True DTPicker1.Enabled = True strflag = 修改 Cmdsave.Enabled = TrueEnd SubPrivate Sub Cmdsave_Click() On Error Resume Ne*t Dim A As Boolean If strflag = 添加 Then A = MsgBo*(是否添加前記錄?, vbYesNo + 32, 添加記錄) If A = True Then E*

28、eCutesql insert into 借入 values( & t*t_man.Te*t & , & t*t_money.Te*t & , & bo1.Te*t & , & Format(DTPicker1.Value, yyyy-mm-dd) & , & t*t_way.Te*t & , & Check1.Value & ), Str_te*t MsgBo* 數據已經保存!, vbOKOnly + 64, 成功 Call Db Label7.Caption = Mydb.RecordCount End If ElseIf strflag = 修改 Then A = MsgBo*(是否修改

29、前記錄?, vbYesNo + 32, 添加記錄) If A = True Then Mydb.Update Mydb.Requery Call Db MsgBo* 數據修改成功!, vbOKOnly + 64, 成功 End If End If t*t_man.Locked = True t*t_way.Locked = True t*t_money.Locked = True bo1.Locked = True Check1.Enabled = False DTPicker1.Enabled = False Cmdsave.Enabled = FalseEnd SubPrivate Sub

30、 bo1_Change() Set Mydb1 = E*eCutesql(select from 成員, Str_te*t) Set bo1.DataSource = Mydb1 For I = 1 To Mydb1.RecordCount bo1.AddItem (Mydb1.Fields(0) Mydb1.MoveNe*t If Mydb1.EOF Then E*it For Ne*t IEnd SubPrivate Sub mand1_Click() On Error Resume Ne*t Call Db Mydb.MoveFirst Call BangdingEnd SubPriva

31、te Sub mand3_Click() On Error Resume Ne*t Call Db Mydb.MoveNe*t If Mydb.EOF Then MsgBo* 這已經是最后一條記錄了!, vbOKOnly + 32, 注意 Mydb.MoveLast End If Call BangdingEnd SubPrivate Sub mand2_Click() On Error Resume Ne*t Mydb.MovePrevious If Mydb.BOF Then MsgBo* 這已經是第一條記錄了!, vbOKOnly + 32, 注意 Mydb.MoveFirst End

32、If Call BangdingEnd SubPrivate Sub mand4_Click() On Error Resume Ne*t Call Db Mydb.MoveLast Call BangdingEnd SubPrivate Sub Form_Load() On Error Resume Ne*t Call Db Call Bangding Cmdsave.Enabled = False Check1.Value = 0 Label7.Caption = Mydb.RecordCount DTPicker1.Value = Date t*t_man.Locked = True t

33、*t_way.Locked = True t*t_money.Locked = True bo1.Locked = True Check1.Enabled = False DTPicker1.Enabled = FalseEnd SubPrivate Function Db() Set Mydb = E*eCutesql(select * from 借入, Str_te*t)End FunctionPrivate Function Bangding() On Error Resume Ne*t Set t*t_man.DataSource = Mydb Set t*t_money.DataSo

34、urce = Mydb Set DTPicker1.DataSource = Mydb Set t*t_way.DataSource = Mydb Set Check1.DataSource = Mydb t*t_man.DataField = 得款人 t*t_money.DataField = 金額 DTPicker1.DataField = 日期 t*t_way.DataField = 出借原因 Check1.DataField = 已還 Set bo1.DataSource = Mydb bo1.DataField = 出借人End Function(3)主函數代碼Private Sub

35、 mnu_bg_yue_Click() frm_list.Show 0, frm_main 參數,讓frm_main為主窗體打開多個子體End SubPrivate Sub mnu_c*_shouru_Click() frm_query.Show 0, frm_mainEnd SubPrivate Sub mnu_bz_zt_Click()End SubPrivate Sub mnu_c*_Click() frm_query.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_dq_Click() frm_fi*.Show 0, frm_mainEnd Su

36、bPrivate Sub mnu_rcgl_hq_Click() frm_live.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_jc_Click() frm_borrowgo.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_jr_Click() frm_borrowin.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_sr_Click() frm_intake.Show 0, frm_mainEnd SubPrivate Sub mnu_rcgl_zc_Click() f

37、rm_e*pend.Show 0, frm_mainEnd SubPrivate Sub mnu_*t_shz_Click() frm_login.Show Unload MeEnd SubPrivate Sub mnu_*t_*g_Click() frm_password.Show 0, frm_mainEnd SubPrivate Sub mnu_*t_*u_Click() frm_project.Show 0, frm_mainEnd SubPrivate Sub mnu_*y_family_Click() frm_family.Show 0, frm_mainEnd SubPrivat

38、e Sub mnue*it_Click()Unload MeEnd SubPrivate Sub mnuinput_Click()Call FileInEnd SubPrivate Sub mnuout_Click()Call FileGoEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSctlLib.Button) Select Case Button.Inde* Case 1 Call mnu_*t_*u_Click Case 2 Call mnu_*y_family_Click Case 3 Call mnu_*t_*g_

39、Click Case 5 Call FileGo Case 6 Call FileIn Case 8 Call mnu_rcgl_sr_Click Case 9 Call mnu_rcgl_zc_Click Case 10 Call mnu_rcgl_hq_Click Case 11 mnu_bg_yue_Click Case 13 Call mnu_c*_Click Case 15 Unload Me End SelectEnd SubPrivate Function FileGo() On Error GoTo 1 Dim A, B As String monDialog1.ShowSav

40、e A = monDialog1.FileName B = App.Path & & databaseMoneyMIS.mdb Set fs = CreateObject(Scripting.FileSystemObject) fs.CopyFile B, A MsgBo* 數據庫導出成功!, vbOKOnly + 64, 成功 E*it Function1: MsgBo* 數據庫導出失敗!, vbOKOnly + 64, 失敗End FunctionPrivate Function FileIn() On Error GoTo 1 Dim A, B, C, D As String C = M

41、sgBo*(是否真的導入數據庫,導入新數據庫后,將覆蓋原來的所有錄?, vbYesNo + 48 + 256, 警告) If C = vbYes Then monDialog1.ShowOpen A = monDialog1.FileName B = App.Path & & databaseMoneyMIS.mdb D = CurDir() & & MoneyMIS.mdb Set Fs1 = CreateObject(Sfcripting.FileSystemObject) Fs1.DeleteFile D, True Fs1.CopyFile A, B MsgBo* 數據庫導入成功!,

42、vbOKOnly + 64, 成功 Else MsgBo* 數據庫導入失敗!, vbOKOnly + 64, 失敗 End If E*it Function1: MsgBo* 數據庫導入失敗!, vbOKOnly + 64, 失敗End Function(4)密碼代碼Dim Mydb As New ADODB.RecordsetDim Str_te*t As StringPrivate Sub mand1_Click() On Error Resume Ne*t Dim Password As String Dim Newpassword As String Password = Te*t1.

43、Te*t Newpassword = Te*t2.Te*t Set Mydb = E*eCutesql(SELECT pass from user1 WHERE user= & ame & , Str_te*t) MsgBo* select pass from user1 where user= & ame & If Not Password = Mydb.Fields(0) Then MsgBo* 原密碼輸入錯誤!, vbOKOnly + 32, 注意 Te*t2.Te*t = Te*t3.Te*t = Te*t2.SetFocus Else If Te*t3.Te*t Newpasswor

44、d Then MsgBo* 你兩次輸入密碼不一致,請重新輸入!, vbOKOnly + 32, 注意 Te*t1.SetFocus Else E*eCutesql UPDATE user1 SET pass= & Newpassword & where user= & ame & , MsgBo* 密碼更改成功!, vbOKOnly + 64, 注意 Unload Me End If End IfEnd SubPrivate Sub mand2_Click() Unload Me frm_main.ShowEnd Sub(5)項目代碼Dim Mydb1 As ADODB.RecordsetDi

45、m Mydb2 As ADODB.RecordsetDim Mydb3 As ADODB.RecordsetDim Mydb4 As ADODB.RecordsetDim Str_te*t As StringPrivate Function Db1() Set Mydb1 = E*eCutesql(select * from 收入項目, Str_te*t) Set MSHFle*Grid1.DataSource = Mydb1End FunctionPrivate Function Db2() Set Mydb2 = E*eCutesql(select * from 支出項目, Str_te*

46、t) Set MSHFle*Grid2.DataSource = Mydb2End FunctionPrivate Sub cmd_add_Click() Te*t1.Locked = FalseEnd SubPrivate Sub cmd_cancel_Click() Unload MeEnd SubPrivate Sub cmd_del_Click() On Error Resume Ne*t Dim A As Boolean Set Mydb3 = E*eCutesql(select * from 收入項目 where value= & Te*t1.Te*t & , Str_te*t)

47、If SSTab1.Tab = 0 Then A = MsgBo*(是否刪除當前記錄, vbYesNo + 32 + 256, 刪除記錄) If A = True Then Mydb3.Delete Mydb3.MoveNe*t If Mydb3.EOF Then Mydb.MoveLast Mydb3.Requery Call Db1 End If Else Set Mydb4 = E*eCutesql(select * from 支出項目 where value= & Te*t1.Te*t & , Str_te*t) A = MsgBo*(是否刪除當前記錄, vbYesNo + 32 +

48、256, 刪除記錄) If A = True Then Mydb4.Delete Mydb4.MoveNe*t If Mydb4.EOF Then Mydb2.MoveLast Mydb4.Requery Call Db2 End If End IfEnd SubPrivate Sub cmd_save_Click() On Error Resume Ne*t Dim A As Boolean If SSTab1.Tab = 0 Then A = MsgBo*(是否添加前記錄, vbYesNo + 32, 添加記錄) If A = True Then E*eCutesql insert int

49、o 收入項目 values( & Te*t1.Te*t & ), Str_te*t Mydb1.MoveLast Call Db1 MsgBo* 收入項目添加成功!, vbOKOnly + 64, Te*t1.Te*t = End If Else A = MsgBo*(是否添加前記錄, vbYesNo + 32, 添加記錄) If A = True Then E*eCutesql insert into 支出項目 values( & Te*t1.Te*t & ), Str_te*t Mydb2.MoveLast Call Db2 MsgBo* 支出項目添加成功!, vbOKOnly + 64,

50、 Te*t1.Te*t = End If End IfEnd SubPrivate Sub Form_Load() Te*t1.Locked = True Call Db1 Call Db2End SubPrivate Sub MSHFle*Grid1_Click() Te*t1.Te*t = MSHFle*Grid1.Te*tMatri*(MSHFle*Grid1.Row, 1)End SubPrivate Sub MSHFle*Grid2_Click() Te*t1.Te*t = MSHFle*Grid2.Te*tMatri*(MSHFle*Grid2.Row, 1)End Sub(6)查

51、詢代碼Dim Mydb As New ADODB.RecordsetDim Mydb1 As New ADODB.RecordsetDim Mydb2 As New ADODB.RecordsetDim Mydb3 As New ADODB.RecordsetDim Mydb4 As New ADODB.RecordsetDim Mydb5 As New ADODB.RecordsetDim Mydb10 As New ADODB.RecordsetDim Mydb11 As New ADODB.RecordsetDim Mydb12 As New ADODB.RecordsetDim Str

52、_te*t As StringDim Riqi, Riqi1, Riqi3, Riqi4Private Sub Chk_date1_Click() If Chk_date1.Value = 1 Then Chk_mode1.Value = 0 Chk_money1.Value = 0 Chk_project1.Value = 0 End IfEnd SubPrivate Sub Chk_mode1_Click() If Chk_mode1.Value = 1 Then Chk_money1.Value = 0 Chk_project1.Value = 0 Chk_date1.Value = 0

53、 End IfEnd SubPrivate Sub Chk_money1_Click() If Chk_money1.Value = 1 Then Chk_mode1.Value = 0 Chk_project1.Value = 0 Chk_date1.Value = 0 End IfEnd SubPrivate Sub Chk_project1_Click() If Chk_project1.Value = 1 Then Chk_mode1.Value = 0 Chk_date1.Value = 0 Chk_money1.Value = 0 End IfEnd SubPrivate Sub

54、mand1_Click() If Chk_date.Value = 1 Then Call Criqi End If If Chk_mode.Value = 1 Then Call Mode End If If Chk_money = 1 Then Call Money End If If Chk_project.Value = 1 Then Call Project End IfEnd SubPrivate Sub mand2_Click() Unload MeEnd SubPrivate Sub mand3_Click() If Chk_date1.Value = 1 Then Call

55、Criqi1 End If If Chk_mode1.Value = 1 Then Call Mode1 End If If Chk_money1 = 1 Then Call Money1 End If If Chk_project1.Value = 1 Then Call Project1 End IfEnd SubPrivate Sub mand4_Click() Unload MeEnd SubPrivate Function Criqi() Riqi = Format(DTPicker1.Value, yyyy-mm-dd) Riqi1 = Format(DTPicker2.Value

56、, yyyy-mm-dd) Set Mydb = E*eCutesql(select * from 收入 where 日期 between & Riqi & and & Riqi1 & , Str_te*t) Set MSHFle*Grid1.DataSource = MydbEnd FunctionPrivate Function Mode() Set Mydb1 = E*eCutesql(select * from 收入 where 方式= & bo1.Te*t & , Str_te*t) Set MSHFle*Grid1.DataSource = Mydb1End FunctionPri

57、vate Function Money() On Error Resume Ne*t Set Mydb2 = E*eCutesql(select * from 收入 where 金額= & t*t_money.Te*t, Str_te*t) Set MSHFle*Grid1.DataSource = Mydb2End FunctionPrivate Function Project() Set Mydb3 = E*eCutesql(select * from 收入 where 項目= & bo2.Te*t & , Str_te*t) Set MSHFle*Grid1.DataSource =

58、Mydb3End FunctionPrivate Sub Form_Load() On Error Resume Ne*t Dim A, B Set Mydb4 = E*eCutesql(select * from 收入項目, Str_te*t) A = Mydb4.RecordCount For I = 1 To A bo2.AddItem Mydb4.Fields(0) Mydb4.MoveNe*t If Mydb4.EOF Then E*it For Ne*t I Set Mydb5 = E*eCutesql(select * from 支出項目, Str_te*t) B = Mydb5.RecordCount F

溫馨提示

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

評論

0/150

提交評論