主键是否已经在表中存在
Dimrs_checkAsNewADODB.Recordset
DimsqlCheckAsString
sqlCheck="select*fromClientwhere住户编号='"&(Text1(0).Text)&"'"
rs_check.OpensqlCheck,conn,adOpenStatic,adLockOptimistic
IfNotrs_check.EOFAndNotrs_check.BOFThen
MsgBox"该住户编号已经存在,请重填一个!",vbOKOnly+vbInformation,"注意"
rs_check.Close
Text1(0).SetFocus
Text1(0).Text=""
ExitSub
EndIf
rs_check.Close
'主键不重复,可以加入表中
rs_client.AddNew
Fori=0To14
rs_client.Fields(i)=Text1(i).Text
Nexti
rs_client.Fields(15)=Combo1.Text
rs_client.Update
'添加保存之后,显示总信息条数需要加1
Text2.Text=Val(Text2.Text)-1
'修改数据后的保存
Else
rs_client.Update
EndIf
MsgBox"保存数据成功!",vbOKOnly+vbInformation,"祝贺"
'保存后需要设置其他按钮可用,以及各个text框不可写
cmdAdd.Enabled=True
cmdEdit.Enabled=True
cmdDel.Enabled=True
cmdSave.Enabled=False
cmdCancel.Enabled=False
cmdFirst.Enabled=True
cmdPrev.Enabled=True
cmdNext.Enabled=True
cmdLast.Enabled=True
cmdQuery.Enabled=True
Fori=0To14
Text1(i).Enabled=False
Nexti
Combo1.Enabled=False
EndSub
3.4.3物业管理模块设计
其中添加,修改,删除按包的源码设计同上,重点分析保存按钮的源码如下:
PrivateSubcmdSave_Click()
'检测数据是否完整
IfText1(0).Text=""Then
MsgBox"设备编号不可为空!",vbOKOnly+vbInformation,"注意"
Text1(0).SetFocus
ExitSub
ElseIfText1(1).Text=""Then
MsgBox"设备名称不可为空!",vbOKOnly+vbInformation,"注意"
Text1(1).SetFocus
ExitSub
ElseIfIsDate(Text1(5).Text)=FalseThen
MsgBox"购买日期书写不对,应为2000-1-1这样的格式!",vbOKOnly+vbInformation,"注意"
Text1(5).SetFocus
ExitSub
EndIf
'添加数据后保存
Ifadd=1Then
'检测房间编号这个主键是否已经在表中存在
Dimrs_checkAsNewADODB.Recordset
DimsqlCheckAsString
sqlCheck="select*fromEquipmentwhere设备编号='"&(Text1(0).Text)&"'"
rs_check.OpensqlCheck,conn,adOpenStatic,adLockOptimistic
IfNotrs_check.EOFAndNotrs_check.BOFThen
MsgBox"该设备编号已经存在,请重填一个!",vbOKOnly+vbInformation,"注意"
rs_check.Close
Text1(0).SetFocus
Text1(0).Text=""
ExitSub
EndIf
rs_check.Close
'主键不重复,可以加入表中
rs_equip.AddNew
Fori=0To6
rs_equip.Fields(i)=Text1(i).Text
Nexti
rs_equip.Update
'添加之后显示总共条数信息加1
Text2.Text=Val(Text2.Text)+1
'修改数据后的保存
Else
rs_equip.Update
EndIf
MsgBox"保存数据成功!",vbOKOnly+vbInformation,"祝贺"
'保存后需要设置其他按钮可用,以及各个text框不可写
cmdAdd.Enabled=True
cmdEdit.Enabled=True
cmdDel.Enabled=True
cmdSave.Enabled=False
cmdCancel.Enabled=False
cmdFirst.Enabled=True
cmdPrev.Enabled=True
cmdNext.Enabled=True
cmdLast.Enabled=True
cmdQuery.Enabled=True
Fori=0To6
Text1(i).Enabled=False
Nexti
EndSub
(该模块其它几个窗体的设计跟此窗体的设计雷同)
3.4.4数据报表统计的设计
物业设备统计
其中排序按钮的源码如下:
PrivateSubcmdOrder_Click()
DimsqlAsString
Ifrs_order.State=adStateOpenThen
rs_order.Close
EndIf
sql="select*fromEquipmentorderby"&Combo1.Text
rs_order.CursorLocation=adUseClient
rs_order.Opensql,conn,adOpenStatic,adLockOptimistic
'设置DataGrid1的数据源
SetDataGrid1.DataSource=rs_order
DataGrid1.Refresh
'使用分组统计,并显示在DataGrid2中
'首先需要设置DataGrid2可见
DataGrid2.Visible=True
'设置网格不可写
DataGrid2.AllowAddNew=False
DataGrid2.AllowDelete=False
DataGrid2.AllowUpdate=False
Dimsql2AsString
'下面的sql语句已用户选择的combo1.text分组、排序,并且统计同一个combo1.text的数量
sql2="select"&Combo1.Text&",count("&Combo1.Text&_
")as数量统计fromEquipmentgroupby"&Combo1.Text&"orderby"&Combo1.Text
Ifrs_tg.State=adStateOpenThen
rs_tg.Close
EndIf
rs_tg.CursorLocation=adUseClient
rs_tg.Opensql2,conn,adOpenStatic,adLockOptimistic
'设置DataGrid2的数据源
SetDataGrid2.DataSource=rs_tg
DataGrid2.Refresh
EndSub
其它几个窗同的设计与该窗体设计雷同.排序按钮的设计参照物业设备统计按钮的设计.
第四章主菜单的设计与系统实现
系统主菜单的设计
在实际的系统设计中,菜单可分为两种类型,即下拉式菜单和弹出式菜单,下拉式菜单系统中,一般有一个主菜单,其中包括若干个选择项.主菜单单的每一项又可下拉出下一级子菜单.这样用一个个的窗口的形式弹出在屏幕上,它是通过菜单编辑器建立,其步骤如下:
1)选取要建立菜单的窗体
2)从"工具"菜单中,选取"菜单编辑器"建立如下图所示的系统主菜单:
可以看出菜单系统的建立比较直观,因此不作重点描述
一个典型的数据库应用程序由数据结构,操作界面,查询选项和报表打印等组成。在设计应用程序时,应仔细考虑每个组件提供的功能以及与其他组件之间的关系。设计好的功能模块制作完毕后,单击全编译执行在确认无误后,单击文件菜单下的生成工程得到一个.EXE的可执行程序.到此一个完整的系统设计完成.
结论
在刚刚开始学习数据库的时候,对很多细节很没有概念。特别是对表单的作用还有视图和报表的概念的掌握,理解不准确。通过老师的帮助才慢慢的有了一点体会。对书本的学习完成以后,开始着手对数据库系统开始制作,开始对系统的需求分析不足,造成多次重做。在对表单的制作过程中,对表单的尺寸的把握,对各个控件尺寸的把握是比较困难的,各个控件在表单中的布局也非常重要。在本系统中,程序主界面和登陆界面的制作是比较困难的。表单制作完成后就是对控件编程,其中要注意程序编写时的细节,格式,命令的拼写,运用的合理性等等都要进行分析。
总的来说,做完一个数据库的收获不仅仅是技术上的,对事情的宏观的控制有了更深的看法。
致谢
感谢老师在设计中的指导和关怀,并且感谢所有同学对我的支持。
参考文献
1、马力VisualBasic6.0简明教程机械工业出版社2001年8月
2、刘韬骆娟何旭洪VisualBasic6.0数据库系统开发实例导航人民邮电出版社2004.4月
3、程序员杂志2002年合订本电子工业出版社
4、王小平,曹立明.遗传算法-理论、应用与软件实现.西安:西安交通大学出版社,
??
??
??
??
1
上一篇:
VB小区物业管理系统(论文和程序)
下一篇:
缅怀先烈 铭记历史