數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告-個(gè)人記賬系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩31頁(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)介

1、<p><b>  目 錄</b></p><p>  一、課程設(shè)計(jì)目的……………………1</p><p>  二、系統(tǒng)設(shè)計(jì)…………………………1</p><p>  三、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)……………2</p><p>  四、系統(tǒng)功能模塊圖…………………4</p><p>  五、源程

2、序代碼………………………11</p><p>  六、課程設(shè)計(jì)總結(jié)……………………30</p><p>  七、存在的問(wèn)題及不足………………30</p><p><b>  課程設(shè)計(jì)目的</b></p><p>  通過(guò)數(shù)據(jù)庫(kù)課程設(shè)計(jì),培養(yǎng)學(xué)生數(shù)據(jù)庫(kù)設(shè)計(jì)的綜合能力。從需求分析和數(shù)據(jù)庫(kù)邏輯、物理設(shè)計(jì),到功能分析和應(yīng)用程序的

3、最終實(shí)現(xiàn),讓學(xué)生親自動(dòng)手參與一個(gè)具有一定規(guī)模的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā),真正理解和掌握數(shù)據(jù)庫(kù)設(shè)計(jì)和開(kāi)發(fā)的思路和方法,并更好的理解和消化課本所學(xué)的知識(shí),為今后的實(shí)際應(yīng)用打下良好的基礎(chǔ)。</p><p><b>  系統(tǒng)設(shè)計(jì)</b></p><p>  本課程設(shè)計(jì)(個(gè)人記賬系統(tǒng))是用VB+SQL設(shè)計(jì)完成的。在本系統(tǒng)里可以對(duì)家庭人員基本信息以及家庭賬目的收入支出進(jìn)行簡(jiǎn)單維

4、護(hù)。</p><p>  主要功能包括對(duì)家庭人員信息以及家庭收支的添加、修改、刪除、查找、統(tǒng)計(jì)等功能。</p><p>  三、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  1.SQL數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p><b>  表格設(shè)計(jì):</b></p><p>  userinfo表,記錄用戶信息<

5、/p><p>  familyinfo表,記錄家庭人員信息</p><p>  income表,記錄收入方面信息</p><p>  pay表,記錄支出方面信息</p><p>  account表,匯總收支信息</p><p>  allaccount表,計(jì)算總收支及結(jié)余</p><p><

6、b>  存儲(chǔ)過(guò)程</b></p><p>  定義countall存儲(chǔ)過(guò)程,統(tǒng)計(jì)account表中的收支信息,并對(duì)收支金額進(jìn)行求和,算出結(jié)余插入到allaccount表中。</p><p><b>  觸發(fā)器:</b></p><p>  familyinfo表上定義update觸發(fā)器完成對(duì)income和pay上收支人員的一致

7、性更新。</p><p>  income表上定義insert,delete及update觸發(fā)器,完成對(duì)于account表上的各個(gè)數(shù)據(jù)的一致性更新。</p><p>  pay表上定義insert,delete及update觸發(fā)器,完成對(duì)于account表上的各個(gè)數(shù)據(jù)的一致性更新。</p><p>  account表上定義insert,delete及update觸

8、發(fā)器,調(diào)用countall存儲(chǔ)過(guò)程完成對(duì)于allacount表上數(shù)據(jù)的統(tǒng)計(jì)更新。</p><p><b>  四、系統(tǒng)功能模塊圖</b></p><p><b>  1、數(shù)據(jù)源連接</b></p><p><b>  2、界面設(shè)計(jì)</b></p><p><b>  

9、登陸界面:</b></p><p><b>  注冊(cè)界面:</b></p><p><b>  收入管理界面:</b></p><p>  界面中分為三個(gè)部分,第一部分收入信息,第二部分顯示當(dāng)前總收支及與結(jié)余,并隨著用戶添加修改刪除的操作及時(shí)更新,第三部分是操作信息,包括查詢、添加、修改、刪除。</p&g

10、t;<p><b>  住處管理界面:</b></p><p>  界面中分為三個(gè)部分,第一部分收入信息,第二部分顯示當(dāng)前總收支及與結(jié)余,并隨著用戶添加修改刪除的操作及時(shí)更新,第三部分是操作信息,包括查詢、添加、修改、刪除。</p><p><b>  收支界面顯示:</b></p><p><b>

11、;  家庭人員信息顯示:</b></p><p><b>  五、附:源程序代碼</b></p><p><b>  SQL代碼</b></p><p>  觸發(fā)器 pay表上</p><p><b>  de_pay </b></p><p&

12、gt;  create trigger de_pay</p><p><b>  on pay</b></p><p>  for delete</p><p><b>  as</b></p><p>  declare @new_time char(20)</p><p>

13、;  declare @new_item char(20)</p><p>  declare @new_mon int</p><p>  declare @new_rela char(20)</p><p>  declare @new_expl char(200)</p><p>  select @new_time=支出時(shí)間 from

14、 deleted</p><p>  select @new_item=支出項(xiàng)目 from deleted</p><p>  select @new_mon=支出金額 from deleted</p><p>  select @new_rela=支出人員 from deleted</p><p>  select @new_expl=支出

15、說(shuō)明 from deleted</p><p>  delete from account where 錄入時(shí)間=@new_time and 收支金額=@new_mon and 收支項(xiàng)目=@new_item and 收支人員=@new_rela and 收支說(shuō)明=@new_expl</p><p><b>  out_tr</b></p><p&g

16、t;  create trigger out_tr</p><p><b>  on pay</b></p><p>  for insert</p><p><b>  as</b></p><p>  declare @new_time char(20)</p><p>

17、  declare @new_item char(20)</p><p>  declare @new_mon int</p><p>  declare @new_rela char(20)</p><p>  declare @new_expl char(200)</p><p>  select @new_time=支出時(shí)間 from

18、inserted</p><p>  select @new_item=支出項(xiàng)目 from inserted</p><p>  select @new_mon=支出金額 from inserted</p><p>  select @new_rela=支出人員 from inserted</p><p>  select @new_expl

19、=支出說(shuō)明 from inserted</p><p>  insert into account(錄入時(shí)間,收支類型,收支金額,收支項(xiàng)目,收支人員,收支說(shuō)明)</p><p>  values(@new_time,'支出',@new_mon,@new_item,@new_rela,@new_expl) </p><p><b>  up_

20、pay</b></p><p>  create trigger up_pay</p><p><b>  on pay</b></p><p>  for update</p><p><b>  as</b></p><p>  declare @new_ti

21、me char(20)</p><p>  declare @new_item char(20)</p><p>  declare @new_mon int</p><p>  declare @new_rela char(20)</p><p>  declare @new_expl char(200)</p><p&

22、gt;  declare @old_time char(20)</p><p>  declare @old_item char(20)</p><p>  declare @old_mon int</p><p>  declare @old_rela char(20)</p><p>  declare @old_expl char(20

23、0)</p><p>  select @old_time=支出時(shí)間 from deleted</p><p>  select @old_item=支出項(xiàng)目 from deleted</p><p>  select @old_mon=支出金額 from deleted</p><p>  select @old_rela=支出人員 fro

24、m deleted</p><p>  select @old_expl=支出說(shuō)明 from deleted</p><p>  select @new_time=支出時(shí)間 from inserted</p><p>  select @new_item=支出項(xiàng)目 from inserted</p><p>  select @new_mon

25、=支出金額 from inserted</p><p>  select @new_rela=支出人員 from inserted</p><p>  select @new_expl=支出說(shuō)明 from inserted</p><p>  update account set 錄入時(shí)間=@new_time where 錄入時(shí)間=@old_time</p&g

26、t;<p>  update account set 收支金額=@new_mon where 收支金額=@old_mon</p><p>  update account set 收支項(xiàng)目=@new_item where 收支項(xiàng)目=@old_item</p><p>  update account set 收支人員=@new_rela where 收支人員=@old_rel

27、a</p><p>  update account set 收支說(shuō)明=@new_expl where 收支說(shuō)明=@old_expl</p><p><b>  income 表上</b></p><p>  create trigger de_income</p><p><b>  on income<

28、;/b></p><p>  for delete</p><p><b>  as</b></p><p>  declare @new_time char(20)</p><p>  declare @new_item char(20)</p><p>  declare @new_mo

29、n int</p><p>  declare @new_rela char(20)</p><p>  declare @new_expl char(200)</p><p>  select @new_time=收入日期 from deleted</p><p>  select @new_item=收入項(xiàng)目 from deleted&l

30、t;/p><p>  select @new_mon=收入金額 from deleted</p><p>  select @new_rela=收入人員 from deleted</p><p>  select @new_expl=收入說(shuō)明 from deleted</p><p>  delete from account where 錄入時(shí)

31、間=@new_time and 收支金額=@new_mon and 收支項(xiàng)目=@new_item and 收支人員=@new_rela and 收支說(shuō)明=@new_expl</p><p>  create trigger in_tr</p><p><b>  on income</b></p><p>  for insert</p&

32、gt;<p><b>  as</b></p><p>  declare @new_time char(20)</p><p>  declare @new_item char(20)</p><p>  declare @new_mon int</p><p>  declare @new_rela c

33、har(20)</p><p>  declare @new_expl char(200)</p><p>  select @new_time=收入日期 from inserted</p><p>  select @new_item=收入項(xiàng)目 from inserted</p><p>  select @new_mon=收入金額 fro

34、m inserted</p><p>  select @new_rela=收入人員 from inserted</p><p>  select @new_expl=收入說(shuō)明 from inserted</p><p>  insert into account(錄入時(shí)間,收支類型,收支金額,收支項(xiàng)目,收支人員,收支說(shuō)明)</p><p>

35、  values(@new_time,'收入',@new_mon,@new_item,@new_rela,@new_expl) </p><p>  create trigger up_income</p><p><b>  on income</b></p><p>  for update</p><p

36、><b>  as</b></p><p>  declare @new_time char(20)</p><p>  declare @new_item char(20)</p><p>  declare @new_mon int</p><p>  declare @new_rela char(20)<

37、;/p><p>  declare @new_expl char(200)</p><p>  declare @old_time char(20)</p><p>  declare @old_item char(20)</p><p>  declare @old_mon int</p><p>  declare @

38、old_rela char(20)</p><p>  declare @old_expl char(200)</p><p>  select @old_time=收入日期 from deleted</p><p>  select @old_item=收入項(xiàng)目 from deleted</p><p>  select @old_mon=

39、收入金額 from deleted</p><p>  select @old_rela=收入人員 from deleted</p><p>  select @old_expl=收入說(shuō)明 from deleted</p><p>  select @new_time=收入日期 from inserted</p><p>  select @

40、new_item=收入項(xiàng)目 from inserted</p><p>  select @new_mon=收入金額 from inserted</p><p>  select @new_rela=收入人員 from inserted</p><p>  select @new_expl=收入說(shuō)明 from inserted</p><p>

41、;  update account set 錄入時(shí)間=@new_time where 錄入時(shí)間=@old_time</p><p>  update account set 收支金額=@new_mon where 收支金額=@old_mon</p><p>  update account set 收支項(xiàng)目=@new_item where 收支項(xiàng)目=@old_item</p>

42、<p>  update account set 收支人員=@new_rela where 收支人員=@old_rela</p><p>  update account set 收支說(shuō)明=@new_expl where 收支說(shuō)明=@old_expl</p><p>  familyinfo表上</p><p>  create trigger up_f

43、amily</p><p>  on dbo.familyinfo</p><p>  for update</p><p><b>  as</b></p><p>  declare @new_rela char(20)</p><p>  declare @old_rela char(20)

44、</p><p>  select @new_rela=家庭人員 from inserted</p><p>  select @old_rela=家庭人員 from deleted</p><p>  update income set 收入人員=@new_rela where 收入人員=@old_rela</p><p>  update

45、 pay set 支出人員=@new_rela where 支出人員=@old_rela</p><p><b>  account表上</b></p><p>  create trigger de_account</p><p>  on account</p><p>  for delete</p>

46、<p><b>  as</b></p><p>  exec countall</p><p>  create trigger in_account</p><p>  on account</p><p>  for insert </p><p><b>  as&l

47、t;/b></p><p>  exec countall</p><p>  create trigger up_account</p><p>  on account</p><p>  for update</p><p><b>  as</b></p><p&

48、gt;  exec countall</p><p><b>  存儲(chǔ)過(guò)程</b></p><p>  CREATE proc countall</p><p><b>  as</b></p><p>  declare @sum_income int</p><p>  

49、declare @sum_pay int</p><p>  declare @sum_count int</p><p>  declare @old_income int</p><p>  declare @old_pay int</p><p>  declare @old_sum int</p><p>  

50、select @old_income=總收入,@old_pay=總支出,@old_sum=結(jié)余 from allaccount</p><p>  select @sum_income=sum(收支金額) from account where 收支類型='收入'</p><p>  select @sum_pay=sum(收支金額) from account where 收

51、支類型='支出'</p><p>  set @sum_count=@sum_income-@sum_pay</p><p>  update allaccount set 總收入=@sum_income where 總收入=@old_income</p><p>  update allaccount set 總支出=@sum_pay where

52、總支出=@old_pay</p><p>  update allaccount set 結(jié)余=@sum_count where 結(jié)余=@old_sum</p><p><b>  VB代碼</b></p><p><b>  '模塊</b></p><p>  Public cn As A

53、DODB.Connection</p><p>  Public rs As ADODB.Recordset</p><p><b>  '菜單</b></p><p>  Private Sub Command1_Click()</p><p><b>  菜單.Hide</b></

54、p><p><b>  收入管理.Show</b></p><p><b>  End Sub</b></p><p>  Private Sub Command2_Click()</p><p><b>  菜單.Hide</b></p><p><

55、b>  支出管理.Show</b></p><p><b>  End Sub</b></p><p>  Private Sub Command3_Click()</p><p><b>  菜單.Hide</b></p><p><b>  收支顯示.Show<

56、/b></p><p><b>  End Sub</b></p><p>  Private Sub Command4_Click()</p><p><b>  菜單.Hide</b></p><p><b>  登錄.Show</b></p><

57、p><b>  End Sub</b></p><p>  Private Sub Command5_Click()</p><p>  If MsgBox("你確定要退出嗎?", vbOKCancel, "提示") = vbOK Then</p><p><b>  End</b&

58、gt;</p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  Private Sub Command6_Click()</p><p><b>  菜單.Hide</b></p><p>

59、;<b>  家庭人員.Show</b></p><p><b>  End Sub</b></p><p><b>  '登錄</b></p><p>  Private Sub Command1_Click()</p><p>  Set cn = New ADOD

60、B.Connection</p><p>  Set rs = New ADODB.Recordset</p><p>  cn.Open "dsn=keep_account"</p><p>  rs.Open "select * from userinfo where username='" & Text1

61、 & "'" & "and password='" & Text2 & "'", cn, adOpenStatic, adLockOptimistic</p><p>  If rs.RecordCount > 0 Then</p><p><b>  菜單.

62、Show</b></p><p><b>  登錄.Hide</b></p><p><b>  Else</b></p><p>  MsgBox "密碼錯(cuò)誤或用戶名不存在!請(qǐng)重新輸入。"</p><p>  a = a + 1 '密碼沒(méi)輸入一次a的數(shù)值就

63、增加1</p><p>  Text1.Text = ""</p><p>  Text2.Text = ""</p><p>  If a > 2 Then '三次輸入錯(cuò)誤,程序強(qiáng)制退出</p><p>  MsgBox "三次輸入錯(cuò)誤,強(qiáng)制退出!"</p>

64、;<p><b>  End</b></p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  End Sub</b></p><p>  Private Sub Comm

65、and2_Click()</p><p><b>  登錄.Hide</b></p><p><b>  注冊(cè).Show</b></p><p><b>  End Sub</b></p><p>  Private Sub Command3_Click()</p>

66、<p>  If MsgBox("你確定要退出嗎?", vbOKCancel, "提示") = vbOK Then</p><p><b>  End</b></p><p><b>  End If</b></p><p><b>  End Sub<

67、/b></p><p><b>  '家庭人員</b></p><p>  Public Sub export()</p><p>  Text1.Text = rs.Fields("家庭人員")</p><p>  Text2.Text = rs.Fields("年齡&quo

68、t;)</p><p>  Text3.Text = rs.Fields("政治面貌")</p><p>  Text4.Text = rs.Fields("職業(yè)")</p><p>  Text5.Text = rs.Fields("說(shuō)明")</p><p><b>  

69、End Sub</b></p><p>  Public Sub import()</p><p>  rs.Fields("家庭人員") = Text1.Text</p><p>  rs.Fields("年齡") = Text2.Text</p><p>  rs.Fields(&quo

70、t;政治面貌") = Text3.Text</p><p>  rs.Fields("職業(yè)") = Text4.Text</p><p>  rs.Fields("說(shuō)明") = Text5.Text</p><p><b>  End Sub</b></p><p>  

71、Public Sub clear()</p><p>  Text1.Text = ""</p><p>  Text2.Text = ""</p><p>  Text3.Text = ""</p><p>  Text4.Text = ""</p>

72、<p>  Text5.Text = ""</p><p><b>  End Sub</b></p><p>  Private Sub Command1_Click()</p><p>  On Error GoTo flag</p><p>  rs.MoveFirst</p

73、><p>  Call export</p><p><b>  Exit Sub</b></p><p><b>  flag:</b></p><p>  MsgBox "數(shù)據(jù)庫(kù)空或當(dāng)前已是第一條!"</p><p><b>  End Sub&

74、lt;/b></p><p>  Private Sub Command10_Click()</p><p>  If MsgBox("你確定要退出嗎?", vbOKCancel, "提示") = vbOK Then</p><p><b>  End</b></p><p>

75、;<b>  End If</b></p><p><b>  End Sub</b></p><p>  Private Sub Command2_Click()</p><p>  On Error GoTo flag</p><p>  rs.MovePrevious</p>&

76、lt;p>  If rs.BOF Then</p><p>  MsgBox "當(dāng)前已是第一條記錄!", , "提示"</p><p>  rs.MoveFirst</p><p><b>  Else</b></p><p>  Call export</p>

77、<p><b>  End If</b></p><p><b>  Exit Sub</b></p><p><b>  flag:</b></p><p>  MsgBox "數(shù)據(jù)庫(kù)無(wú)記錄或當(dāng)前已是第一條!"</p><p><b>

78、;  End Sub</b></p><p>  Private Sub Command3_Click()</p><p>  On Error GoTo flag</p><p>  rs.MoveNext</p><p>  If rs.EOF Then</p><p>  MsgBox "當(dāng)

79、前已是最后一條記錄!", , "提示"</p><p>  rs.MoveLast</p><p><b>  Else</b></p><p>  Call export</p><p><b>  End If</b></p><p><

80、;b>  Exit Sub</b></p><p><b>  flag:</b></p><p>  MsgBox "數(shù)據(jù)庫(kù)無(wú)記錄或當(dāng)前已是最后一條記錄!"</p><p><b>  End Sub</b></p><p>  Private Sub Com

81、mand4_Click()</p><p>  On Error GoTo flag</p><p>  rs.MoveLast</p><p>  Call export</p><p><b>  Exit Sub</b></p><p><b>  flag:</b>&

82、lt;/p><p>  MsgBox "數(shù)據(jù)庫(kù)無(wú)記錄或當(dāng)前已是最后一條記錄!"</p><p><b>  End Sub</b></p><p>  Private Sub Command5_Click()</p><p>  On Error GoTo flag</p><p>

83、;  If rs.RecordCount > 0 Then</p><p>  rs.MoveLast</p><p><b>  rs.AddNew</b></p><p>  Call import</p><p><b>  rs.Update</b></p><p&

84、gt;<b>  Else</b></p><p><b>  rs.AddNew</b></p><p>  Call import</p><p><b>  rs.Update</b></p><p><b>  End If</b></p&g

85、t;<p>  收入管理.Combo3.AddItem (Text1.Text)</p><p><b>  收入管理.Hide</b></p><p>  支出管理.Combo3.AddItem (Text1.Text)</p><p><b>  支出管理.Hide</b></p><

86、p>  'Call clear</p><p><b>  rs.Close</b></p><p>  rs.Open "select * from familyinfo", cn, adOpenStatic, adLockOptimistic</p><p>  rs.MoveLast</p>

87、<p><b>  Exit Sub</b></p><p><b>  flag:</b></p><p>  MsgBox "請(qǐng)檢查你輸入的格式是否正確."</p><p><b>  End Sub</b></p><p>  Privat

88、e Sub Command6_Click()</p><p>  If MsgBox("你確定要修改該條記錄?", vbOKCancel, "提示") = vbOK Then</p><p><b>  rs.Delete</b></p><p><b>  rs.Update</b>

89、;</p><p><b>  rs.AddNew</b></p><p>  Call import</p><p><b>  rs.Update</b></p><p><b>  End If</b></p><p><b>  rs.

90、Close</b></p><p>  rs.Open "select * from familyinfo", cn, adOpenStatic, adLockOptimistic</p><p><b>  End Sub</b></p><p>  Private Sub Command7_Click()&l

91、t;/p><p>  On Error GoTo flag</p><p>  Dim a As Integer</p><p>  Dim b As Integer</p><p>  a = 收入管理.Combo3.ListCount - 1</p><p>  b = 支出管理.Combo3.ListCount -

92、1</p><p>  If MsgBox("你確定要?jiǎng)h除這一條記錄?", vbOKCancel, "提示") = vbOK Then</p><p><b>  rs.Delete</b></p><p><b>  rs.Update</b></p><p&g

93、t;  rs.MovePrevious</p><p>  Call export</p><p>  收入管理.Combo3.RemoveItem a</p><p><b>  收入管理.Hide</b></p><p>  支出管理.Combo3.RemoveItem b</p><p>&

94、lt;b>  End If</b></p><p><b>  rs.Close</b></p><p>  rs.Open "select * from familyinfo", cn, adOpenStatic, adLockOptimistic</p><p><b>  Exit Sub&

95、lt;/b></p><p><b>  flag:</b></p><p>  MsgBox "數(shù)據(jù)庫(kù)無(wú)記錄或已刪除記錄!"</p><p><b>  End Sub</b></p><p>  Private Sub Command8_Click()</p>

96、;<p>  On Error GoTo flag</p><p>  If Combo2.Text = "全部顯示" Then</p><p>  Set 家庭人員顯示.DataGrid1.DataSource = rs</p><p>  家庭人員顯示.Show</p><p><b>  El

97、se</b></p><p>  If Text6.Text = "" Then</p><p>  MsgBox "請(qǐng)輸入查找信息!"</p><p><b>  Else</b></p><p><b>  rs.Close</b></p

98、><p>  rs.Open "select * from familyinfo where " & Combo2.Text & "='" & Text6 & "'", cn, adOpenStatic, adLockOptimistic '按用戶指定的方式,與用戶提供的信息查詢</p>

99、<p>  If rs.RecordCount > 0 Then</p><p>  Call export</p><p><b>  Else</b></p><p>  MsgBox "對(duì)不起,記錄中沒(méi)有你要查找的項(xiàng)!"</p><p><b>  End If<

100、;/b></p><p><b>  End If</b></p><p><b>  End If</b></p><p><b>  'rs.Close</b></p><p>  'rs.Open "select * from family

101、info", cn, adOpenStatic, adLockOptimistic</p><p><b>  Exit Sub</b></p><p><b>  flag:</b></p><p>  MsgBox "請(qǐng)檢查你輸入的格式是否正確:"</p><p>

102、<b>  End Sub</b></p><p>  Private Sub Command9_Click()</p><p><b>  家庭人員.Hide</b></p><p><b>  菜單.Show</b></p><p><b>  End Sub&l

103、t;/b></p><p>  Private Sub Form_Load()</p><p>  Set cn = New ADODB.Connection</p><p>  Set rs = New ADODB.Recordset</p><p>  cn.Open "dsn=keep_account"<

104、/p><p>  rs.Open "select * from familyinfo", cn, adOpenStatic, adLockOptimistic</p><p>  Call export</p><p><b>  End Sub</b></p><p><b>  '收

105、入管理</b></p><p>  Private Sub Command1_Click()</p><p>  On Error GoTo flag</p><p>  rs.MoveFirst</p><p>  Call export</p><p><b>  Exit Sub</b

106、></p><p><b>  flag:</b></p><p>  MsgBox "數(shù)據(jù)庫(kù)空或當(dāng)前已是第一條!"</p><p><b>  End Sub</b></p><p>  Private Sub Command10_Click()</p>&

107、lt;p>  If MsgBox("你確定要退出嗎?", vbOKCancel, "提示") = vbOK Then</p><p><b>  End</b></p><p><b>  End If</b></p><p><b>  End Sub</b&

108、gt;</p><p>  Private Sub Command2_Click()</p><p>  On Error GoTo flag</p><p>  rs.MovePrevious</p><p>  If rs.BOF Then</p><p>  MsgBox "當(dāng)前已是第一條記錄!&quo

109、t;, , "提示"</p><p>  rs.MoveFirst</p><p><b>  Else</b></p><p>  Call export</p><p><b>  End If</b></p><p><b>  Exit

110、Sub</b></p><p><b>  flag:</b></p><p>  MsgBox "數(shù)據(jù)庫(kù)無(wú)記錄或當(dāng)前已是第一條!"</p><p><b>  End Sub</b></p><p>  Private Sub Command3_Click()<

111、;/p><p>  On Error GoTo flag</p><p>  rs.MoveNext</p><p>  If rs.EOF Then</p><p>  MsgBox "當(dāng)前已是最后一條記錄!", , "提示"</p><p>  rs.MoveLast</p

112、><p><b>  Else</b></p><p>  Call export</p><p><b>  End If</b></p><p><b>  Exit Sub</b></p><p><b>  flag:</b>&

113、lt;/p><p>  MsgBox "數(shù)據(jù)庫(kù)無(wú)記錄或當(dāng)前已是最后一條記錄!"</p><p><b>  End Sub</b></p><p>  Private Sub Command4_Click()</p><p>  On Error GoTo flag</p><p>

114、;  rs.MoveLast</p><p>  Call export</p><p><b>  Exit Sub</b></p><p><b>  flag:</b></p><p>  MsgBox "數(shù)據(jù)庫(kù)無(wú)記錄或當(dāng)前已是最后一條記錄!"</p><

115、;p><b>  End Sub</b></p><p>  Private Sub Command5_Click()</p><p>  On Error GoTo flag</p><p>  If rs.RecordCount > 0 Then</p><p>  rs.MoveLast</p&g

116、t;<p><b>  rs.AddNew</b></p><p>  Call import</p><p><b>  rs.Update</b></p><p><b>  Else</b></p><p><b>  rs.AddNew</

117、b></p><p>  Call import</p><p><b>  rs.Update</b></p><p><b>  End If</b></p><p>  Call clear</p><p><b>  rs.Close</b>

118、;</p><p>  rs.Open "select * from allaccount", cn, adOpenStatic, adLockOptimistic</p><p>  Label10.Caption = rs.Fields("總收入")</p><p>  Label11.Caption = rs.Field

119、s("總支出")</p><p>  Label12.Caption = rs.Fields("結(jié)余")</p><p><b>  rs.Close</b></p><p>  rs.Open "select * from income", cn, adOpenStatic, adL

120、ockOptimistic</p><p>  rs.MoveLast</p><p><b>  Exit Sub</b></p><p><b>  flag:</b></p><p>  MsgBox "請(qǐng)檢查你輸入的格式是否正確." & vbCrLf &

121、"收入金額為數(shù)字格式" & vbCrLf & "時(shí)期請(qǐng)按:(年)-(月)-(日)輸入" & vbCrLf & "其他為文本格式"</p><p><b>  End Sub</b></p><p>  Private Sub Command6_Click()</p>

122、<p>  If MsgBox("你確定要修改該條記錄?", vbOKCancel, "提示") = vbOK Then</p><p><b>  rs.Delete</b></p><p><b>  rs.Update</b></p><p><b> 

123、 rs.AddNew</b></p><p>  Call import</p><p><b>  rs.Update</b></p><p><b>  End If</b></p><p><b>  rs.Close</b></p><p

124、>  rs.Open "select * from allaccount", cn, adOpenStatic, adLockOptimistic</p><p>  Label10.Caption = rs.Fields("總收入")</p><p>  Label11.Caption = rs.Fields("總支出")

125、</p><p>  Label12.Caption = rs.Fields("結(jié)余")</p><p><b>  'rs.Close</b></p><p>  'rs.Open "select * from income", cn, adOpenStatic, adLockOptim

126、istic</p><p><b>  End Sub</b></p><p>  Private Sub Command7_Click()</p><p>  On Error GoTo flag</p><p>  If MsgBox("你確定要?jiǎng)h除這一條記錄?", vbOKCancel, &qu

127、ot;提示") = vbOK Then</p><p><b>  rs.Delete</b></p><p><b>  rs.Update</b></p><p>  rs.MovePrevious</p><p>  Call export</p><p>&

128、lt;b>  End If</b></p><p><b>  rs.Close</b></p><p>  rs.Open "select * from allaccount", cn, adOpenStatic, adLockOptimistic</p><p>  Label10.Caption =

129、rs.Fields("總收入")</p><p>  Label11.Caption = rs.Fields("總支出")</p><p>  Label12.Caption = rs.Fields("結(jié)余")</p><p><b>  'rs.Close</b></p

130、><p>  'rs.Open "select * from income", cn, adOpenStatic, adLockOptimistic</p><p><b>  Exit Sub</b></p><p><b>  flag:</b></p><p>  Ms

131、gBox "數(shù)據(jù)庫(kù)無(wú)記錄或已刪除記錄!"</p><p><b>  End Sub</b></p><p>  Private Sub Command8_Click()</p><p>  On Error GoTo flag</p><p>  If Combo2.Text = "全部顯

132、示" Then</p><p>  Set 收入顯示.DataGrid1.DataSource = rs</p><p><b>  收入顯示.Show</b></p><p><b>  Else</b></p><p>  If Text6.Text = "" Th

133、en</p><p>  MsgBox "請(qǐng)輸入查找信息!"</p><p><b>  Else</b></p><p><b>  rs.Close</b></p><p>  rs.Open "select * from income where "

134、& Combo2.Text & "='" & Text6 & "'", cn, adOpenStatic, adLockOptimistic '按用戶指定的方式,與用戶提供的信息查詢</p><p>  If rs.RecordCount > 0 Then</p><p>  Call e

135、xport</p><p><b>  Else</b></p><p>  MsgBox "對(duì)不起,記錄中沒(méi)有你要查找的項(xiàng)!"</p><p><b>  End If</b></p><p><b>  End If</b></p><

136、;p><b>  End If</b></p><p><b>  'rs.Close</b></p><p>  'rs.Open "select * from income", cn, adOpenStatic, adLockOptimistic</p><p><b&g

137、t;  Exit Sub</b></p><p><b>  flag:</b></p><p>  MsgBox "請(qǐng)檢查你輸入的格式是否正確:" & vbCrLf & "日期請(qǐng)按(年)-(月)-(日)格式輸入."</p><p><b>  End Sub<

138、/b></p><p>  Private Sub Command9_Click()</p><p><b>  收入管理.Hide</b></p><p><b>  菜單.Show</b></p><p><b>  End Sub</b></p>&l

139、t;p>  Private Sub Form_Load()</p><p>  Set cn = New ADODB.Connection</p><p>  Set rs = New ADODB.Recordset</p><p>  cn.Open "dsn=keep_account"</p><p>  rs.

140、Open "select * from allaccount", cn, adOpenStatic, adLockOptimistic</p><p>  Label10.Caption = rs.Fields("總收入")</p><p>  Label11.Caption = rs.Fields("總支出")</p>

141、;<p>  Label12.Caption = rs.Fields("結(jié)余")</p><p><b>  rs.Close</b></p><p>  rs.Open "select * from income", cn, adOpenStatic, adLockOptimistic</p>&l

142、t;p>  Call export</p><p><b>  End Sub</b></p><p><b>  '收支顯示</b></p><p>  Private Sub Command1_Click()</p><p><b>  收支顯示.Hide</b&g

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論