e
EndIf
mainfrm.Command1.Enabled=True
mainfrm.Command2.Enabled=True
mainfrm.Command3.Enabled=True
Ifuserid="admin"Then
mainfrm.Command4.Enabled=True
Else
mainfrm.Command4.Enabled=False
EndIf
GetStatus"<就绪>"
EndSub
PrivateSubCommand2_Click()
Unloadfrmqchu
'初始化主窗口
mainfrm.guanli.Enabled=True
mainfrm.chaxun.Enabled=True
mainfrm.tongji.Enabled=True
Ifuserid="admin"Then
mainfrm.xitong.Enabled=True
mainfrm.bdb.Enabled=True
Else
mainfrm.xitong.Enabled=False
mainfrm.bdb.Enabled=False
EndIf
mainfrm.Command1.Enabled=True
mainfrm.Command2.Enabled=True
mainfrm.Command3.Enabled=True
Ifuserid="admin"Then
mainfrm.Command4.Enabled=True
Else
mainfrm.Command4.Enabled=False
EndIf
GetStatus"<就绪>"
EndSub
PrivateSubCommand3_Click()
ts5.Show
Beep
frmqchu.Enabled=False
mainfrm.Enabled=False
EndSub
PrivateSubCommand4_Click()
IfText4.Text=""Then
MsgBox"请输入迁出到何地",,"警告"
Text4.SetFocus
Else
ts4.Show
Beep
frmqchu.Enabled=False
mainfrm.Enabled=False
EndIf
EndSub
PrivateSubForm_Load()
Label13.Caption=Date
EndSub
5.4查询户号窗体设计
用这个功能可以对户主的户号进行查询,只要输入身份证号码就可以查询了,如果用户输入错误的身份证号码系统会提示:无此身份证号,或不是户主身份证号
代码如下:
OptionExplicit
PrivateSubCommand1_Click()
Unloadfrmchuhao
'初始化主窗口
mainfrm.guanli.Enabled=True
mainfrm.chaxun.Enabled=True
mainfrm.tongji.Enabled=True
Ifuserid="admin"Then
mainfrm.xitong.Enabled=True
mainfrm.bdb.Enabled=True
Else
mainfrm.xitong.Enabled=False
mainfrm.bdb.Enabled=False
EndIf
mainfrm.Command1.Enabled=True
mainfrm.Command2.Enabled=True
mainfrm.Command3.Enabled=True
Ifuserid="admin"Then
mainfrm.Command4.Enabled=True
Else
mainfrm.Command4.Enabled=False
EndIf
GetStatus"<就绪>"
EndSub
PrivateSubCommand2_Click()
DimsfAsString
DimhzAsString
DimcnnAsNewADODB.Connection
DimretAsNewADODB.Recordset
hz="户主"
Dimlocal_dbAsString
IfText3.Text=""Then
MsgBox"请输入户主身份证号",,"警告"
Text3.SetFocus
Else
sf=Trim(Text3.Text)
'连接数据库
cnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+App.Path&"\data\db.mdb"+";PersistSecurityInfo=False;"
local_db="select户号from人口表"+_
"where人口表.身份证号="+"'"+sf+"'"+"and人口表.与户主关系="+"'"+hz+"'"
ret.Openlocal_db,cnn
Ifret.BOFAndret.EOFThen
MsgBox"无此身份证号,或不是户主身份证号",,"警告"
Text3.Text=""
Text3.SetFocus
Else
Label7.Caption=ret("户号")
EndIf
EndIf
EndSub
5.5备份数据库设计
可以对ACCESS数据库进行备份,操作员操作之后有很多数据需要存档,用此功能即可对录入的内容进行保存,以方便下次操作时调用
实现代码如下:
OptionExplicit
PrivateSubCommand1_Click()
CommonDialog1.ShowOpen
Text1.Text=CommonDialog1.FileName
EndSub
PrivateSubCommand2_Click()
IfText1.Text=""Then
MsgBox"请先选择数据库文件",,"警告"
Else
CommonDialog2.ShowSave
Text2.Text=CommonDialog2.FileName
EndIf
EndSub
PrivateSubCommand3_Click()
DimsrcAsString
DimdstAsString
IfText1.Text=""Then
MsgBox"请选择数据库源文件",,"警告"
Else
IfText2.Text=""Then
MsgBox"请选择备份数据库存放目录",,"警告"
EndIf
EndIf
IfText1.Text<>""AndText2.Text<>""Then
src=Text1.Text
dst=Text2.Text
FileCopysrc,dst
MsgBox"数据库备份成功!",,"提示"
EndIf
EndSub
PrivateSubCommand4_Click()
Unloadfrmbackup
'初始化主窗口
mainfrm.guanli.Enabled=True
mainfrm.chaxun.Enabled=True
mainfrm.tongji.Enabled=True
Ifuserid="admin"Then
mainfrm.xitong.Enabled=True
mainfrm.bdb.Enabled=True
Else
mainfrm.xitong.Enabled=False
mainfrm.bdb.Enabled=False
EndIf
mainfrm.Command1.Enabled=True
mainfrm.Command2.Enabled=True
mainfrm.Command3.Enabled=True
Ifuserid="admin"Then
mainfrm.Command4.Enabled=True
Else
mainfrm.Command4.Enabled=False
EndIf
GetStatus"<就绪>"
EndSub
测试分析
一、强制变量声明
选择菜单[工具]-[选项]命令,打开"选项"对话框",在"编辑器"属性页中,把"要求变量声明"复选框选上,或者手工在每个文件的开头加上关键字:
optionExplicit
这样在编译时会对没有声明的变量报错,从而减少很多不必要的调试。
二、常见错误的避免
1、数据类型不匹配
数据类型的判断错误,比如一个功能模块,接受传入的数据为id,要求其值必须是正数。如果写程序时传入的是小数,或者是非数字的字符串,那么程序将会出现错误。又如查询数据表时,使用了WHERE子句,但是数据类型不匹配,数据库中字段类型为数字的值,却使用了字符串去查询,就会出现错误。
2、数据与数据库限制相冲突
数据与数据库限制相冲突,可能是其值超过了数据库的上限和下限。比如在数据库中,用户名称字符数量上限是20个字符,而在程序中没有对此进行判别,如果一个添加新商品时名字有21个字符,那么在使用SQL语句插入数据与记录的时候就会出错。
3、变量声明错误
最后是一些常识性错误,比如在If...Else...EndIf过程中,认为判断只会执行其中的一段代码,于是在两段中都使用了DimobjasclsMerch,事实上,编译器在语法分析阶段,是首先将一个函数内声明的全部变量都放符号表中,而不管这个变量的声明是在这个函数的什么位置。
又如在SelectCase中,Case的条件是字符串,但是没有加引号,就变成了Case一个空变量。
4、资源的建立与释放
在将类实例化时,必须使用New关键字,未实例化类无法使用,例:
误:
DimobjasclsMerch
ClsMerch.AddNew
正:
DimobjasclsMerch
Setobj=NewclsMerch
ClsMerch.AddNew
同理,在调用Setobj=Nothing后,资源已经释放,无法再调用类内的方法。
5、系统的编译和发行
3个工程的项目属性在前面创建项目时均已设置完毕,由于在本系统中生成了名为
BuySellstorageDB.dll和BuySellstorageUI.dll的组件,当移植到其他机器使用时,需要先注册此组件。另外系统中默认的数据库的路径是与BuySellstorageDB.dll同目录下的DB文件夹,因此当移植到其他机器时,这个路径关系依然不能改变。
结束语
家庭收支管理系统是一个比较复杂的课题,因为社会在发展,时代在进步,人们的需求也在不断地发生变化,计算机已经成为我们学习和工作的得力助手,使用原先的管理方法越来越不适应现在社会的发展。为了适应现代社会人们高度强烈的时间观念,家庭收支管理系统软件为每一个家庭管理家庭财务带来了极大的方便。使用其可方便的管理家庭财务,借助该软件提高工作效率,形成一种科学的管理体系。
本人所开发的这个家庭收支管理系统也是有其局限性的,主要是由于本人工作十分繁忙没有足够的
上一篇:
VB社会福利保障系统(论文和程序)
下一篇:
科研管理杂志简介