还剩36页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
目录TOC\o1-3\h\z\u汽车销售管理系统1
一、课程设计的目的和意义1
二、需求分析1
三、模块设计1
四、创建数据库2
五、创建登录窗口4
六、主窗体的设计6
七、用户管理模块9
八、汽车信息管理模块15
九、进货信息模块23
十、销售信息管理模块29
十一、查找窗体模块36
十二、结果分析38
十三、参考文献38汽车销售管理系统
1.课程设计的目的和意义高效的汽车销售管理系统是当前信息化汽车公司管理系统之需要面对庞大的汽车销售和库存信息,就需要有汽车管理系统来提高管理工作的效率通过建立这样的系统,可以做到汽车信息的规范管理、快速查询和科学统计,从而减少管理方面的工作量系统开发环境为一台安装windowsxp的个人计算机作为客户机,其上安装了SQLServer2000,本系统使用VisualBasic
6.0来开发,系统设计与运行均可在客户机上进行
2.需求分析本系统的设计模拟一般医院的汽车销售管理系统内容,经过充分的系统分析和调研,本系统主要包括的信息有3类汽车商品信息、汽车进货信息以及汽车销售信息在传统的销售管理工作中,往往是用人工清点的方式来掌握仓库中的汽车商品、使用手工记账的方式来掌握商品的进货和销售情况这种方式在数量较少、库存变换少的情况下,不失为一种好的方法但是,随着每天所发生的进货和销售情况纷繁复杂,如果借助人工来记录和管理,将会耗费大量的时间,而且容易出现错误,造成管理上的混乱具体而言,汽车销售管理系统需要实现一下的需求
(1)能够对医院过拥有的各种汽车的基础信息进行维护和管理汽车的基础信息包括汽车的顺序号、汽车名称、汽车规格、计量单位、备注信息、库存数量等系统需要能够对汽车信息进行添加、修改和删除,也可以以图形的方式显示出现汽车的库存数量的比较
(1)跟踪各种汽车的的进货信息汽车的进货信息包括顺序号、汽车名称、进货数量、进货价格、进货日期、备注等系统还需要能够对进货信息进行添加、修改和删除,也可以按照一定的条件来进行查询
(1)跟踪各种汽车的销售信息汽车的销售信息包括顺序号、汽车名称、顾客名称、购买数量、售出价格、销售日期、备注等系统需要能够对销售信息进行添加、修改和删除,也可以按照一定的条件来进行查询
3.模块设计根据需求分析的结果,本系统主要划分为4个子模块用户管理、汽车信息管理、进货信息管理、销售信息管理汽车销售管理系统不同类型的用户在系统中有不同的权限,主要有以下3种用户
(1)管理人员本系统的管理人员可以使用本系统的所有功能,包括用户管理、汽车信息管理、进货信息管理和销售信息管理功能
(1)仓管人员仓管人员负责管理仓库中的汽车数量,主要负责汽车的每次的进货情况其只能使用系统中的进货信息管理功能模块,对每次进货的信息进行记录,并且可以查询当前仓库中的汽车库存数量
(1)销售人员销售人员负责汽车的日常销售工作,需要掌握各种汽车的各次的销售情况其只能使用本系统的汽车销售信息管理模块,贵每次汽车的销售情况进行记录整个系统的结构模块如图1所示一下分别介绍系统中的各个系统4个子模块A.用户管理模块用于管理汽车销售系统中的各种类型的用户只有具有管理人员身份的人才能使用本模块,管理人员可以添加或者删除相应的用户,可以改变用户的身份,也可以改变某个用户的秘密A.汽车信息管理模块图1系统模块分析用来多医院所拥有的各种汽车的基础信息进行维护和管理在系统中,需要对汽车信息进行添加、修改和删除,也可以按照一定的条件进行查询,并且不要将汽车的库存数量以图形的方式显示出来A.进货信息管理模块用来跟踪汽车每一次进货的信息该模块需要能够对进货信息进行添加、修改和删除,也可以按照一定的条件来进行查询只有管理人员和仓管人员才能使用本模块A.销售信息管理模块用来跟踪汽车每一次售货的信息该模块需要能够对销售信息进行添加、修改和删除,也可以按照一定的条件来进行查询只有管理人员和销售人员才能使用本模块
4.创建数据库在本系统中,需要掌握汽车的基本信息、每次汽车进货信息、每次汽车销售信息,此外,由于要进行用户管理,还需要掌握使用本系统的用户,各种数据表如图2,3,4,5所示图2用户信息表-userlist图3汽车信息表-products图4销售信息表-sell图5进货信息表-stock为了数据库的规范化的设计理念,3个表之间的关系如图6所示的关系图·products表中的“汽车名称”字段和sell表中的“商品名称”形成一对多的参照完整性·products表中的“商品名称”字段和stock表中的“商品名称”字段形成一对多的参照完整性图6表之间的关系
5.创建登录窗体模块
5.1窗体模块的功能该系统是一个基于不同用户的系统,在本系统中有3类不同的用户管理人员、仓管人员、销售人员因此,在系统启动时,需要一个登录窗口,已选择不同的身份登录,然后根据不同的身份来显示不同的功能
5.2主界面的设计图7主界面
5.3工作流程或者方式系统运行时,首先出现主界面当点击“登录”按钮后,出现登录窗体由于登录窗体时一个面向多用户的系统,不同的用户在使用系统时,将会拥有不同的功能登录窗体的作用就是确定当前使用系统的用户类型当窗体运行时,用户首先要在用户名和密码这两个文本框中输入相应的用户名和密码,然后在身份组合框中选择不同的身份单击“确定”按钮即可进入主窗体登录界面如图8所示图8登录界面
5.4部分代码如下“确定”按钮的部分代码PrivateSubcmdOK_ClickOnErrorGoToerrHandlerSetgConn=NewADODB.ConnectiongConn.OpenyyxsteamoDimuserAsStringpwdAsStringuser=txtUserpwd=txtPwdgnUserType=cboUserType.ListIndexgsUserName=userDimstrSQLAsStringstrSQL=select*fromuserlistwhere用户名=userand用户密码=pwdand用户类型=gnUserTypeDimrAsNewADODB.Recordsetr.OpenstrSQLgConnadOpenStaticStaticnTryCountAsIntegerIfr.EOFThenMsgBox对不起,无此用户或者密码不正确!请重新输入!!!vbCritical错误txtUser.SetFocustxtUser.SelStart=0txtUser.SelLength=LentxtUsernTryCount=nTryCount+1IfnTryCount=3ThenMsgBox您无权操作本系统!再见!vbCritical无权限UnloadMegConn.CloseEndIfElseUnloadMefrmMain.ShowEndIfr.CloseExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSub身份选择组合框的代码如下PrivateSubForm_LoadcboUserType.ClearcboUserType.AddItem管理人员0cboUserType.AddItem仓管人员1cboUserType.AddItem销售人员2cboUserType.ListIndex=0EndSub
6.主窗体的设计
6.1窗体模块的功能如果用户通过登录窗体登录了本系统,将会出现如图9,10,11所示的主窗体界面该窗体是为整个系统中的窗体提供一个统一管理的环境其中设计了菜单,不同的菜单对应不同的系统功能;根据不同的用户身份,将会显示不同的菜单,这样就实现了使功能随用户的不同而不同的设计思路
6.2工作流程该窗体被作为系统中众多窗体的父窗体,其主要功能是提供用户所要使用的菜单项,不同身份的用户,其所能使用的菜单项也是不同的
(1)以管理人员登录的界面显示,如图9所示图9
(1)以仓管人员登录的界面显示,如图10所示图10
(1)以销售人员登录的界面显示,如图11所示图11
(1)密码或用户名输入错误的界面如图12所示图
126.3部分代码
(1)主窗体Load事件的代码PrivateSubForm_LoadOnErrGoToerrHandlerMe.Left=GetSettingApp.TitleSettingsMainLeft1000Me.Top=GetSettingApp.TitleSettingsMainTop1000Me.Width=GetSettingApp.TitleSettingsMainWidth6500Me.Height=GetSettingApp.TitleSettingsMainHeight6500SelectCasegnUserTypeCase0:mnuSystem.Visible=TruemnuProduct.Visible=TruemnuStock.Visible=TruemnuSell.Visible=TruemnuHelp.Visible=TrueCase1:mnuSystem.Visible=FalsemnuProduct.Visible=FalsemnuStock.Visible=TruemnuSell.Visible=FalsemnuHelp.Visible=TrueCase2:mnuSystem.Visible=FalsemnuProduct.Visible=FalsemnuStock.Visible=FalsemnuSell.Visible=TruemnuHelp.Visible=TrueEndSelectExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSub
(2)各菜单项的代码PrivateSubmnuProductAdd_ClickfrmProduct.mbAddMode=TruefrmProduct.ShowvbModalEndSubPrivateSubmnuProductChart_ClickDimrsAsNewADODB.Recordsetrs.Openselect*fromproductsgConnadOpenStaticLoadfrmChartfrmChart.Caption=当前汽车的库存状态DimarrReDimarr1Tors.RecordCount1To2DimiAsIntegeri=1rs.MoveFirstDimstrAsStringWhileNotrs.EOFstr=Trimrs汽车名称arri1=strarri2=rs库存数量i=i+1rs.MoveNextWendWithfrmChart.charReport.Title=当前汽车的库存状态.ChartData=arrEndWithrs.ClosefrmChart.ShowvbModalEndSubPrivateSubmnuProductFind_ClickmnuProductList_ClickfrmProductList.cmdFind.Value=TrueEndSubPrivateSubmnuProductList_ClickLoadfrmProductListfrmProductList.SQL=select*fromproductsfrmProductList.ShowEndSubPrivateSubmnuSellAdd_ClickfrmSell.mbAddMode=TruefrmSell.ShowvbModalEndSubPrivateSubmnuSellFind_ClickmnuSellList_ClickfrmSellList.cmdFind.Value=TrueEndSubPrivateSubmnuSellList_ClickLoadfrmSellListfrmSellList.SQL=select*fromsellfrmSellList.ShowEndSubPrivateSubmnuStockAdd_ClickfrmStock.mbAddMode=TruefrmStock.ShowvbModalEndSubPrivateSubmnuStockFind_ClickmnuStockList_ClickfrmStockList.cmdFind.Value=TrueEndSubPrivateSubmnuStockList_ClickLoadfrmStockListfrmStockList.SQL=select*fromstockfrmStockList.ShowEndSubPrivateSubmnuSystemExit_ClickUnloadMeEndSubPrivateSubmnuSystemLogin_ClickUnloadMefrmLogin.ShowEndSubPrivateSubmnuSystemUser_ClickfrmUser.ShowEndSub
7.用户管理模块
7.1窗体模块的功能用户管理模块有3个窗体组成用户管理主窗体、密码窗体和用户身份选择窗体用户管理主窗体用于显示用户列表,供用户选择下一步操作;密码窗体用于添加用户时输入用户密码,或者用于变更当前用户的秘密;用户身份选择窗体用于添加用户时选择用户身份,或用于变更当前的用户身份
7.2窗体工作流程用户管理模块有几个窗体所共同组成,其流程如图13所示图13用户管理模块的流程
7.3窗体显示界面
(1)用户管理界面如图14所示图14
(2)密码窗体如图15图15图16
(3)用户类型窗体如图
167.4部分代码a用户管理代码PrivateSubcboUserType_ClickOnErrorGoToerrHandlerlstUser.ClearDimstrAsStringSelectCasecboUserType.ListIndexCase012:str=select*fromuserlistwhere用户类型=cboUserType.ListIndexCaseElse:str=select*fromuserlistEndSelectDimrsAsNewADODB.Recordsetrs.OpenstrgConnadOpenStaticWhileNotrs.EOFlstUser.AddItemrs用户名0lstUser.ItemData0=rs用户类型rs.MoveNextWendrs.CloseExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubcmdAddUser_ClickOnErrorGoToerrHandlerDimstrUserAsStringDimstrPwdAsStringDimnTypeAsIntegergetUser:strUser=InputBox请输入所要新建的用户的名称用户名IfstrUser=ThenExitSubDimrsAsNewADODB.Recordsetrs.Openselect*fromuserlistwhere用户名=strUsergConnadOpenStaticIfNotrs.EOFThenMsgBox该用户名已经存在!vbCritical用户名重复GoTogetUserEndIfrs.ClosegetPwd:frmPassword.ShowvbModalstrPwd=frmPassword.txtPwd
0.TextUnloadfrmPasswordIfstrPwd=ThenMsgBox必须输入密码!vbCritical需要密码GoTogetPwdEndIfgetType:frmUserType.ShowvbModalnType=frmUserType.mmUserTypeUnloadfrmUserTypeIfnType0ThenMsgBox必须选择用户类型!vbCritical选择用户类型GoTogetTypeEndIfgConn.Executeinsertintouserlist用户名,用户密码,用户类型valuesstrUserstrPwdnTypeExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubcmdChangePwd_ClickOnErrorGoToerrHandlerIflstUser.Text=ThenExitSubfrmPassword.ShowvbModalIffrmPassword.txtPwd
0.TextThengConn.Executeupdateuserlistset用户密码=frmPassword.txtPwd
0.Textwhere用户名=lstUser.TextEndIfUnloadfrmPasswordExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubcmdChangeType_ClickOnErrorGoToerrHandlerIflstUser.Text=ThenExitSubLoadfrmUserTypefrmUserType.optUserTypelstUser.ItemDatalstUser.ListIndex.Value=TruefrmUserType.ShowvbModalIffrmUserType.mnUserType=0ThengConn.Executeupdateuserlistset用户类型=frmUserType.mnUserTypewhere用户名=lstUser.TextEndIfUnloadfrmUserTypeExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubcmdClose_ClickUnloadMeEndSubPrivateSubcmdDeleteUser_ClickOnErrorGoToerrHandlerIflstUser.Text=ThenExitSubIflstUser.Text=gsUserNameThenMsgBox不能删除当前记录!vbCritical删除用户错误ExitSubEndIfgConn.Executedeletefromuserlistwhere用户名=lstUser.TextlstUser.RemoveItemlstUser.ListIndexExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubb密码窗体代码c用户身份选择窗体代码PrivateSubcmdCancel_ClickmnUserType=-1Me.HideEndSubPrivateSubcmdOK_ClickMe.HideEndSubPrivateSubForm_LoadoptUserType
0.Value=TruemnUserType=-1EndSubPrivateSuboptUserType_ClickIndexAsIntegermnUserType=IndexEndSub
8.汽车信息管理模块
8.1窗体模块的功能在汽车信息管理模块中,包含3个窗体汽车信息列表窗体、汽车信息编辑窗体和显示库存数量的窗体汽车信息列表窗体以表格的形式列出当前系统中的汽车信息,并且为用户提供了进行各种操作的接口;汽车信息编辑窗体用于显示某一个汽车的基本信息,借助该窗体可以对某个汽车信息进行编辑,也可以向数据库增加一个汽车信息;显示库存数量的窗体主要是借助图形方式显示出汽车当前的数量
8.2窗体工作流程图17汽车信息管理模块的子功能
8.3窗体界面显示
(1)汽车信息列表窗体图18
(2)汽车信息编辑窗体图19
(3)显示库存数量窗体图
208.4部分代码A汽车信息列表窗体代码PrivateSubcmdDelete_ClickOnErrorGoToerrHandlerDimlAsLongl=grdList.TextMatrixgrdList.Row1gConn.Executedeletefromproductswhere顺序号=lUnloadMeLoadMeMe.SQL=select*fromproductsMe.ShowExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubcmdEdit_ClickOnErrorGoToerrHandlerfrmProduct.mnSerial=CLnggrdList.TextMatrixgrdList.Row1frmProduct.mbAddMode=FalsefrmProduct.ShowExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubcmdFind_ClickfrmFind.SQL=mRs.SourcefrmFind.ShowvbModalIfTrimfrmFind.msResultSQL=ThenExitSubUnloadMeLoadMeMe.SQL=select*fromproductswherefrmFind.msResultSQLMe.ShowUnloadfrmFindEndSubPrivateSubcmdReport_ClickIfmRs.EOFAndmRs.EOFThenMsgBox当前没有任何记录!vbExclamation错误ExitSubEndIfLoadfrmChartfrmChart.Caption=当前汽车的库存状态DimarrReDimarr1TomRs.RecordCount1To2DimiAsIntegeri=1mRs.MoveFirstDimstrAsStringWhileNotmRs.EOFstr=TrimmRs汽车名称arri1=strarri2=mRs库存数量i=i+1mRs.MoveNextWendWithfrmChart.charReport.Title=当前的库存汽车的剩余价值.ChartData=arrEndWithfrmChart.ShowvbModalEndSubPrivateSubcmdShowAll_ClickUnloadMeLoadMeMe.SQL=select*fromproductsMe.ShowEndSubPrivateSubForm_LoadSetmRs=NewADODB.RecordsetDimiAsIntegerWithgrdList.Cols=
7.TextMatrix01=.TextMatrix02=汽车名称.TextMatrix03=汽车规格.TextMatrix04=汽车单位.TextMatrix05=备注信息.TextMatrix06=库存数量.FixedRows=1Fori=0To.Cols-
1.ColAlignmenti=0Nexti.FillStyle=flexFillRepeat.Col=
0.Row=
0.RowSel=
1.ColSel=.Cols-
1.CellAlignment=
4.ColWidth0=
100.ColWidth1=
0.ColWidth2=
1000.ColWidth3=
1000.ColWidth4=
1000.ColWidth5=
1000.ColWidth6=
1000.Row=1EndWithEndSub
(2)汽车信息编辑窗体代码PrivateSubcmdCancel_ClickIfmbChangeAndcmdOK.EnabledThenIfMsgBox保存当前记录的变化吗?vbOKCancel+vbExclamation警告=vbOKThenCallcmdOK_ClickEndIfEndIfUnloadMeUnloadfrmProductListLoadfrmProductListfrmProductList.SQL=select*fromproductsfrmProductList.ShowEndSubPrivateSubcmdOK_ClickDimstrMsgAsStringDimrsAsADODB.RecordsetDimstrSQLAsStringDimiAsIntegerFori=0To2IfTrimtxtIntemi=ThenSelectCaseiCase0strMsg=汽车名称Case1strMsg=汽车规格Case2strMsg=计量单位EndSelectstrMsg=strMsg不能为空!MsgBoxstrMsgvbOKOnly+vbExclamation警告txtIntemi.SetFocusExitSubEndIfNextiSetrs=NewADODB.RecordsetIfmbAddModeThenstrSQL=select*fromproductswhere汽车名称=TrimtxtIntem0and汽车规格=TrimtxtIntemirs.OpenstrSQLgConnadOpenStaticIfNotrs.EOFThenMsgBox已经存在相同内容的记录!vbOKOnly+vbExclamation警告txtIntem
0.SetFocusrs.CloseExitSubEndIfrs.CloseElsestrSQL=deletefromproductswhere顺序号=TrimmnSerialgConn.ExecutestrSQLEndIfstrSQL=select*fromproductsrs.OpenstrSQLgConnadOpenDynamicadLockOptimisticrs.AddNewFori=0Tors.Fields.Count-2rs.Fieldsi+1=txtIntemiNextirs.Updaters.CloseIfmbAddModeThenmbChange=FalseMsgBox添加汽车信息成功!继续添加下一条汽车信息vbOKOnly+vbExclamation添加汽车信息UnloadMeMe.ShowvbModalElseUnloadMefrmProductList.SQL=select*fromproductsfrmProductList.ShowEndIfEndSubPrivateSubForm_LoadDimstrSQLAsStringDimiAsIntegerDimrsAsNewADODB.RecordsetIfmbAddModeThenMe.Caption=Me.Caption添加ElsestrSQL=select*fromproductswhere顺序号=TrimfrmProductList.grdList.TextMatrixfrmProductList.grdList.Row1rs.OpenstrSQLgConnadOpenKeysetIfrs.EOF=FalseThenWithrsmnSerial=.Fields0Fori=0To.Fields.Count-2IfNotIsNull.Fieldsi+1ThentxtIntemi=.Fieldsi+1EndIfNextiEndWithEndIfrs.CloseMe.Caption=Me.Caption修改EndIfmbChange=FalseEndSubPrivateSubtxtIntem_ChangeIndexAsIntegermbChange=TrueEndSubPrivateSubtxtIntem_GotFocusIndexAsIntegertxtIntemIndex.SelStart=0txtIntemIndex.SelLength=LentxtIntemIndexEndSub
(3)显示库存数量的窗体代码PrivateSubForm_ResizecharReport.Left=0charReport.Top=0charReport.Height=Me.ScaleHeightcharReport.Width=Me.ScaleWidthEndSub
9.进货信息管理模块
9.1窗体模块的功能在该模块中,包含两个窗体进货信息列表窗体和进货信息编辑窗体进货信息列表窗体以表格形式列出当前系统中的进货信息,并且提供了进行各种操作的接口;进货信息编辑窗体用于显示某一次进货的信息,借助该窗体可以对某次进货的信息进行编辑,也可以向数据库增加进货信息
9.2工作流程该模块所包含的功能如图21所示图21进货信息管理模块的子功能
9.3窗体界面设计
(1)进货信息列表窗体,如图22图22
(2)进货信息编辑窗体,如图23图
239.4部分代码A进货信息列表窗体代码PrivateSubcmdAdd_ClickfrmStock.mbAddMode=TruefrmStock.ShowvbModalEndSubPrivateSubcmdDelete_ClickOnErrorGoToerrHandlerDimlAsLongl=grdList.TextMatrixgrdList.Row1gConn.Executedeletefromstockwhere顺序号=lUnloadMeLoadMeMe.SQL=select*fromstockMe.ShowExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubcmdEdit_ClickfrmStock.mnSerial=CLnggrdList.TextMatrixgrdList.Row1frmStock.mbAddMode=TruefrmStock.ShowvbModalEndSubPrivateSubcmdFind_ClickfrmFind.SQL=mRs.SourcefrmFind.ShowvbModalUnloadMeLoadMeIfTrimfrmFind.msResultSQLThenMe.SQL=select*fromstockwherefrmFind.msResultSQLEndIfMe.ShowUnloadfrmFindEndSubPrivateSubcmdShowAll_ClickUnloadMeLoadMeMe.SQL=select*fromstockMe.ShowEndSubPrivateSubForm_LoadDimiAsIntegerWithgrdList.Cols=
8.TextMatrix01=.TextMatrix02=汽车名称.TextMatrix03=供应商名称.TextMatrix04=进货数量.TextMatrix05=商品单价.TextMatrix06=进货日期.TextMatrix07=备注.FixedRows=1Fori=0To.Cols-
1.ColAlignmenti=0Nexti.FillStyle=flexFillRepeat.Col=
0.Row=
0.RowSel=
1.ColSel=.Cols-
1.CellAlignment=
4.ColWidth0=
100.ColWidth1=
0.ColWidth2=
1000.ColWidth3=
1000.ColWidth4=
1000.ColWidth5=
1000.ColWidth6=
1000.ColWidth7=
1000.Row=1EndWithSetmRs=NewADODB.RecordsetEndSubPrivateSubForm_ResizefraManage.Left=Me.ScaleWidth-fraManage.Width/2fraManage.Top=Me.ScaleHeight-200-fraManage.HeightgrdList.Top=200grdList.Width=Me.ScaleWidth-200grdList.Left=Me.ScaleLeft+100grdList.Height=Me.ScaleHeight-fraManage.Height-grdList.Top-200EndSubPrivateSubForm_UnloadCancelAsIntegerIfmRs.StateadStateClosedThenmRs.CloseEndSubB进货信息编辑窗体代码PrivateSubcmdCancel_ClickIfmbChangeThenIfMsgBox保存当前记录的变化吗?vbOKCancel+vbExclamation警告=vbOKThenCallcmdOK_ClickEndIfEndIfUnloadMeUnloadfrmStockListLoadfrmStockListfrmStockList.SQL=select*fromstockfrmStockList.ShowEndSubPrivateSubcmdOK_ClickOnErrorGoToerrHandlerIftxtIntem
3.Text=ThenMsgBox字段不能为空,而且只能输入数字vbCritical错误EndIfIftxtIntem
4.Text=ThenMsgBox字段不能为空,而且只能输入数字vbCritical错误EndIfIfTrimcboItem=ThenMsgBox必须选择汽车名称vbCritical错误cboItem.SetFocusExitSubEndIfIfNotIsDateTrimtxtIntem5ThenMsgBox请输入正确的日期格式!vbOKOnly+vbExclamation警告txtIntem
5.SetFocusExitSubEndIfIfNotmbAddModeThengConn.Executedeletefromstockwhere顺序号=mnSerialEndIfDimrsAsNewADODB.Recordsetrs.Openselect*fromstockgConnadOpenDynamicadLockOptimisticrs.AddNewrs汽车名称=cboItem.TextDimiAsIntegerFori=txtIntem.LBoundTotxtIntem.UBoundrs.Fieldsi.Value=txtIntemiNextirs.Updaters.ClosemnQuantity=CInttxtIntem3-mnQuantitygConn.Executeupdateproductsset库存数量=库存数量+mnQuantitywhere汽车名称=cboItem.TextIfmbAddModeThenmbChange=TrueMsgBox添加进货信息成功!继续添加下一条进货信息vbOKOnly+vbExclamation添加进货信息UnloadMeMe.ShowvbModalElseUnloadMefrmStockList.SQL=select*fromstockfrmStockList.ShowEndIfExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubForm_LoadOnErrorGoToerrHandlerDimrsAsNewADODB.Recordsetrs.Openselectdistinct汽车名称fromproductsgConnadOpenKeysetIfNotrs.EOFThencboItem.ClearDoWhileNotrs.EOFcboItem.AddItemrs汽车名称rs.MoveNextLoopElseMsgBox当前数据库不包含任何的汽车信息请先设置汽车信息!vbOKOnly+vbExclamation警告ExitSubEndIfrs.CloseIfmbAddModeThenMe.Caption=Me.Caption添加txtIntem5=FormatDateyyyy-mm-ddtxtIntem3=0txtIntem4=10mnQuantity=0ElseMe.Caption=Me.Caption修改rs.Openselect*fromstockwhere顺序号=mnSerialIfNotrs.EOFThencboItem.Text=rs汽车名称DimiAsIntegerFori=txtIntem.LBoundTotxtIntem.UBoundtxtIntemi=rs.Fieldsi.ValueNextiEndIfmnQuantity=rs进货数量rs.CloseEndIfmbChange=FalseExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubtxtIntem_ChangeIndexAsIntegermbChange=TrueEndSubPrivateSubtxtIntem_GotFocusIndexAsIntegertxtIntemIndex.SelStart=0txtIntemIndex.SelLength=LentxtIntemIndexEndSub
10.销售信息管理模块
10.1窗体模块的功能在该模块中,包含两个窗体销售信息列表窗体、销售信息编辑窗体销售信息列表窗体以表格的形式列出系统中的销售信息,并且为用户提供了进行各种操作的接口;销售信息编辑窗体用于某一次销售的信息,借助该窗体可以对某次销售的信息进行编辑,也可以向数据库增加一个销售信息
10.2工作流程该模块所包含的功能如图24所示图24销售信息管理模块的子功能
10.3窗体界面设计
(1)销售信息列表窗体,如图25图25
(2)销售信息编辑窗体如图
2610.4窗体设计代码A销售信息列表窗体代码图26PrivateSubcmdAdd_ClickfrmSell.mbAddMode=TruefrmSell.ShowvbModalEndSubPrivateSubcmdDelete_ClickOnErrorGoToerrHandlerDimlAsLongl=grdList.TextMatrixgrdList.Row1gConn.Executedeletefromsellwhere顺序号=lUnloadMeLoadMeMe.SQL=select*fromsellMe.ShowExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubcmdEdit_ClickfrmSell.mnSerial=CLnggrdList.TextMatrixgrdList.Row1frmSell.mbAddMode=TruefrmSell.ShowvbModalEndSubPrivateSubcmdFind_ClickfrmFind.SQL=mRs.SourcefrmFind.ShowvbModalUnloadMeLoadMeIfTrimfrmFind.msResultSQLThenMe.SQL=select*fromsellwherefrmFind.msResultSQLEndIfMe.ShowUnloadfrmFindEndSubPrivateSubcmdShowAll_ClickUnloadMeLoadMeMe.SQL=select*fromsellMe.ShowEndSubPrivateSubForm_LoadDimiAsIntegerWithgrdList.Cols=
8.TextMatrix01=.TextMatrix02=汽车名称.TextMatrix03=顾客名称.TextMatrix04=购买数量.TextMatrix05=售出价格.TextMatrix06=销售日期.TextMatrix07=备注.FixedRows=1Fori=0To.Cols-
1.ColAlignmenti=0Nexti.FillStyle=flexFillRepeat.Col=
0.Row=
0.RowSel=
1.ColSel=.Cols-
1.CellAlignment=
4.ColWidth0=
100.ColWidth1=
0.ColWidth2=
1000.ColWidth3=
1000.ColWidth4=
1000.ColWidth5=
1000.ColWidth6=
1000.ColWidth7=
1000.Row=1EndWithSetmRs=NewADODB.RecordsetEndSubPrivateSubForm_ResizefraManage.Left=Me.ScaleWidth-fraManage.Width/2fraManage.Top=Me.ScaleHeight-200-fraManage.HeightgrdList.Top=200grdList.Width=Me.ScaleWidth-200grdList.Left=Me.ScaleLeft+100EndSubPrivateSubForm_UnloadCancelAsIntegerIfmRs.StateadStateClosedThenmRs.CloseEndSub
(2)销售信息编辑窗体代码PrivateSubcmdCancel_ClickIfmbChangeThenIfMsgBox保存当前记录的变化吗?vbOKCancel+vbExclamation警告=vbOKThenCallcmdOK_ClickEndIfEndIfUnloadMeUnloadfrmSellListLoadfrmSellListfrmSellList.SQL=select*fromsellfrmSellList.ShowEndSubPrivateSubcmdOK_ClickOnErrorGoToerrHandlerIftxtIntem
3.Text=ThenMsgBox字段不能为空,而且只能输入数字vbCritical错误EndIfIftxtIntem
4.Text=ThenMsgBox字段不能为空,而且只能输入数字vbCritical错误EndIfIfTrimcboItem=ThenMsgBox必须选择汽车名称vbCritical错误cboItem.SetFocusExitSubEndIfIfNotIsDateTrimtxtIntem5ThenMsgBox请输入正确的日期格式!vbOKOnly+vbExclamation警告txtIntem
5.SetFocusExitSubEndIfIfNotmbAddModeThengConn.Executedeletefromsellwhere顺序号=mnSerialEndIfDimrsAsNewADODB.Recordsetrs.Openselect*fromsellgConnadOpenDynamicadLockOptimisticrs.AddNewrs汽车名称=cboItem.TextDimiAsIntegerFori=txtIntem.LBoundTotxtIntem.UBoundrs.Fieldsi.Value=txtIntemiNextirs.Updaters.ClosemnQuantity=CInttxtIntem3-mnQuantitygConn.Executeupdateproductsset库存数量=库存数量-mnQuantitywhere汽车名称=cboItem.TextIfmbAddModeThenmbChange=FalseMsgBox添加进货信息成功!继续添加下一条进货信息vbOKOnly+vbExclamation添加进货信息UnloadMeMe.ShowvbModalElseUnloadMefrmSellList.SQL=select*fromsellfrmSellList.ShowEndIfExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubForm_LoadOnErrorGoToerrHandlerDimrsAsNewADODB.Recordsetrs.Openselectdistinct汽车名称fromproductsgConnadOpenKeysetIfNotrs.EOFThencboItem.ClearDoWhileNotrs.EOFcboItem.AddItemrs汽车名称rs.MoveNextLoopElseMsgBox当前数据库不包含任何的汽车信息请先设置汽车信息!vbOKOnly+vbExclamation警告ExitSubEndIfrs.CloseIfmbAddModeThenMe.Caption=Me.Caption添加txtIntem5=FormatDateyyyy-mm-ddtxtIntem3=0txtIntem4=10mnQuantity=0ElseMe.Caption=Me.Caption修改rs.Openselect*fromsellwhere顺序号=mnSerialIfNotrs.EOFThencboItem.Text=rs汽车名称DimiAsIntegerFori=txtIntem.LBoundTotxtIntem.UBoundtxtIntemi=rs.Fieldsi.ValueNextiEndIfmnQuantity=rs销售数量rs.CloseEndIfmbChange=FalseExitSuberrHandler:MsgBoxErr.DescriptionvbCritical错误EndSubPrivateSubtxtIntem_ChangeIndexAsIntegermbChange=TrueEndSubPrivateSubtxtIntem_GotFocusIndexAsIntegertxtIntemIndex.SelStart=0txtIntemIndex.SelLength=LentxtIntemIndexEndSub
10.查找窗体模块
11.1窗体模块的功能由于查找功能在3个模块中都要被使用,所以必须在编写查找窗体时,需要注意窗体的通用性,而且查找窗体需要提供对于任何字段进行查找的功能
11.2窗体界面设计查找功能模块窗体时一个公用的窗体,查找“阿莫西林”的界面如图27所示
11.3部分代码设计查找功能的代码如下所示图26查找“宝马”PrivateSubcboOperators_ClickcmdOK.Enabled=LenlstFields.Text0AndLencboOperators.Text0AndLentxtValue.Text0EndSubPrivateSubcmdCancel_ClickmsResultSQL=Me.HideEndSubPrivateSubcmdOK_ClickScreen.MousePointer=vbHourglassDimsFieldAsStringDimsExprAsStringDimsOperatorAsStringsField=lstFields.TextsExpr=txtValue.TextsOperator=cboOperators.TextDimsTempAsStringIfLCasesOperator=LikeThensTemp=sFieldsOperator%sExpr%ElsesTemp=sFieldsOperatorsExprEndIfmsResultSQL=sTempMe.HideScreen.MousePointer=vbDefaultEndSubPrivateSubForm_LoadcboOperators.AddItem=cboOperators.AddItemcboOperators.AddItem=cboOperators.AddItem=cboOperators.AddItemcboOperators.AddItemcboOperators.AddItemLikecboOperators.ListIndex=0msResultSQL=EndSubPrivateSublstFields_ClickcmdOK.Enabled=LenlstFields.Text0AndLencboOperators.Text0AndLentxtValue.Text0EndSubPrivateSubtxtValue_ChangecmdOK.Enabled=LenlstFields.Text0AndLencboOperators.Text0AndLentxtValue.Text0EndSub
12.结果分析在运行此数据库时,能够按照预先设计的方式进行当输入正确的用户名与密码后进入系统进入系统后可以对车辆进行管理若是管理人员的话,可以对仓库人员,销售人员,汽车信息进行管理在对车辆进行管理时,如添加,修改,删除相关的信息时满足数据库的完整性约束当删除的元组被其他元组参照时则不能删除;添加信息时,若主码为空则不能将数据添加到相应的表中等等系统的管理员可以查看所有的信息,而销售人员和仓库人员只能查看各自管理的销售信息和进货信息自己在实践了数据库的开发过程后,领略到了一下几点1)数据库应用系统的开发设计师一个规范化的过程,需要遵循一定方式方法与开发步骤;2)数据库关系模式设计非常重要,是整个系统设计的中心,其设计合理与否,将全面影响整个系统的成功实现;3)应用系统中数据库操作的实质是设计、组织、递交SQL命令,并根据SQL命令的执行状态,决定后序的数据处理与操作
13.参考文献
[1]王珊萨师煊.《数据库系统概论》.北京.高等教育出版社.2006年5月
[2]王颖李敏业.《数据库应用实例》.北京.人民邮电出版社.2006
[3]王道义/等.《VisualBasic6使用详解》.北京.机械工业出版社.1999年9月
[4]龚沛曾陆慰民杨志强.《VisualBasic程序设计简明教程》.北京.高等教育出版社.汽车销售管理系统用户登录管理人员仓管人员销售人员用户管理模块销售信息管理模块汽车信息管理模块进货信息管理模块显示用户列表输入用户名选择用户类型更改用户类型输入密码添加用户删除用户选择用户修改用户添加用户成功添加编辑删除查找汽车信息列表图形显示库存状态查找删除进货信息列表编辑添加进货信息编辑窗体销售信息编辑窗体编辑添加销售信息列表删除查找。