数据库课程设计库存销售管理系统.docx
- 文档编号:3358758
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:24
- 大小:164.80KB
数据库课程设计库存销售管理系统.docx
《数据库课程设计库存销售管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计库存销售管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
数据库课程设计库存销售管理系统
数据库课程设计库存销售管理系统
数据库课程设计
实验报告
姓名:
***
班级:
计算机1403
学号:
1.实验名称
使用VisualBasic6.0和SQLServer开发库存销售管理系统
2.实验目的
使用VisualBasic6.0开发工具开发一个库存销售管理系统,该系统采用SQLServer数据库保存库存货物信息,数据库中包括货物出入库信息和商品销售等信息。
该系统包括系统登录、货物出入库管理、商品销售管理和商品统计管理等功能,经过这些功能实现对库存中货物信息和销售信息进行管理。
系统主要实现以下目标:
●实现系统登录及修改用户密码的功能。
●对库存货物的出入库信息进行管理。
●对商品的销售信息进行管理。
●根据销售日期统计商品的销售数据。
3.实验步骤
3.1设计数据库
建立一个名为“DB_KCGL”的数据库,根据前述的主要功能目标,需要建立3个数据表(关系):
(1)货物的出入库信息:
保存货物的出入库信息
●id:
库存货物信息的编号,主码,建议长度为18的numeric类型。
●tb_title:
库存货物的名称,建议长度为50的varchar类型。
●tb_style:
库存货物的类型,建议长度为50的varchar类型。
●tb_nums:
库存货物的数量,建议为整型int。
●tb_values:
库存货物的价格,实数类型real。
●tb_date:
库存货物的入库日期,时间日期类型datetime。
●tb_mark:
库存货物的备注信息,建议长度为50的varchar类型。
(2)商品的销售信息:
保存商品的销售信息
●id:
商品销售信息的编号,主码,建议长度为18的numeric类型。
●tb_title:
销售商品的名称,建议长度为50的varchar类型。
●tb_nums:
建议为整型int。
●tb_values:
销售商品的总价,浮点类型float。
●tb_date:
商品销售的日期,时间日期类型datetime。
(3)系统用户的信息:
保存系统用户的信息
●id:
用户信息的编号,主码,建议长度为18的numeric类型。
●tb_name:
用户名称,建议长度为50的varchar类型。
●tb_pas:
用户的密码信息,建议长度为50的varchar类型。
3.2设计连接数据库的模块
需要首先建立一个连接数据库的模块,这样应用程序才能与数据库中的数据表取得连接,将数据信息从数据表中读出到应用程序中或经过应用程序保存到数据表中。
为此,建立一个负责数据库连接的模块如下:
(1)选择“工程”菜单下的“添加模块”命令,在应用程序中添加一个模块Module1。
(2)Module1模块的实现如下:
'数据连接模块
PublicMyStrsAsString
PublicDB_AdoRsAsNewADODB.Recordset'后添加一个记录集对象
PublicDB_AdoRs1AsNewADODB.Recordset'后添加一个记录集对象
PublicDB_AdoRs2AsNewADODB.Recordset'后添加一个记录集对象
PublicFunctionCnn()AsADODB.Connection'定义连接字符串函数
SetCnn=NewADODB.Connection
Cnn.Open"Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=DB_KCGL;DataSource=."
EndFunction
PublicSubMain()
MyStrs="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=DB_KCGL;DataSource=."
'显示系统登录窗体
Form1.Show
EndSub
(3)这里需要将程序的入口设置为模块中的Main()函数。
选择“工程”菜单下的“工程属性”命令,在“通用”标签中进行相应设置。
3.3系统登陆模块设计
在本库存销售管理系统中,只有授权用户(管理员)能够登录并进行库存和销售信息管理与维护,因此需要一个系统登录界面,防止非法用户登录到系统中,从而保证了应用程序的安全性和可靠性。
3.3.1登录窗体设计
设计如下的登录窗体,在窗体中要添加一个ADO控件,命名为Adodc1。
(1)登录窗体启动之后,需要将系统用户的信息数据表中的所有用户名称信息添加到窗体的ComboBox控件的Op_Name属性中,即实现在“操作员名称”下拉列表中能够出现系统当前的操作员信息,供登录用户选择。
PrivateSubForm_Load()
'使用代码连接数据库与数据表
Adodc1.ConnectionString=MyStrs
Adodc1.RecordSource="select*from系统的用户信息"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
Adodc1.Recordset.MoveFirst
Op_Name.Clear'在添加数据时,首先清空控件中的内容
DoWhileAdodc1.Recordset.EOF=False'将操作员信息添加到下拉列表框控件当中
Op_Name.AddItem(Adodc1.Recordset.Fields("tb_name"))
Adodc1.Recordset.MoveNext
Loop
EndIf
EndSub
(2)当用户在“操作员名称”下拉列表中选择操作员的名称,而且在“操作员密码”文本框输入正确的密码之后,单击“确定”按钮将登录到系统中,否则将无法登录系统。
具体实现如下:
PrivateSubCmd_Ok_Click()
Adodc1.RecordSource="select*fromTb_Userwheretb_name='"&Op_Name.Text&"'"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
MPassword=Adodc1.Recordset.Fields("tb_pas")
IfTxt_Password.Text=MPasswordThen'判断数据的密码是否正确
Name1=Op_Name.Text
Frm_Main.StatusBar1.Panels.Item
(2).Text="当前操作员:
"+Adodc1.Recordset.Fields("tb_name")
Frm_Main.Show'经过身份验证则显示主窗体,登录到系统当中
UnloadMe
Else
MsgBox"密码不正确,请您确认后重新输入",,"提示信息"
Txt_Password.Text=""
Txt_Password.SetFocus
EndIf
Else
MsgBox"对不起没有此用户的信息",,"提示信息"
Op_Name.Text=""
Txt_Password.Text=""
EndIf
EndSub
3.4系统主界面的实现
3.4.1主界面设计
(1)在工程中添加一个窗体,将窗体命名为Frm_main,将窗体Caption属性设置为“库存管理系统”。
(2)添加一个Toolbar控件,工具栏由“修改密码”、“库存管理”、“商品销售”、“销售统计”和“退出系统”5个按钮组成。
(3)添加一个StatusBar控件,使得状态栏中能够显示登录操作员姓名和当前系统时间等信息。
(4)在主窗体上添加一个时钟控件,用于显示系统当前日期和时间信息。
(5)在主窗体上添加一个Label标签控件,将其Caption属性设置为“库存管理系统”。
3.4.2代码实现
(1)窗体启动时,在窗体的状态栏中将显示当前系统的日期信息:
PrivateSubForm_Load()
StatusBar1.Panels.Item(3).Text=Format(Now,"yyyy年mm月dd日")
EndSub
(2)单击窗口工具栏按钮时,将会调用系统的各个子功能模块:
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
SelectCaseButton.Index
Case1
Frm_Pas.Show'修改密码
Case2
Frm_Inout.Show'库存管理
Case3
Frm_Sale.Show'商品销售
Case4
Frm_Stat.Show'销售统计
Case5
End'退出系统
EndSelect
EndSub
(3)在时钟控件的Timer事件中添加如下代码,实现在状态栏中显示当前系统时间的功能:
PrivateSubTimer1_Timer()
StatusBar1.Panels.Item(4).Text=Time
EndSub
(4)再向状态栏中添加公司名称,操作员和公司网址信息。
系统主窗体的运行界面如下图所示:
3.5出入库管理模块的设计与实现
该模块主要是记录和维护库存中的货物信息,其中包括对货物信息的删除、修改和保存等方面的功能。
3.5.1窗体界面设计
(1)在工程中添加一个窗体,命名为Frm_Inout,将窗体Caption设置为“出入库管理”。
(2)在窗体上添加相应的控件,如下图所示。
(3)经过“工程”菜单下的“部件”命令将DataGrid数据表格控件添加到工具箱中,然后在窗体上添加1个数据表格控件DataGrid1。
(4)在窗体上添加一个ADO控件Adodc1,同时将DataGrid1的数据源属性DataSource设置为Adodc1。
3.5.2程序代码实现
(1)窗口载入时,将数据库中商品表数据读出。
PrivateSubForm_Load()
Adodc1.ConnectionString=MyStrs
Adodc1.RecordSource="select*from货物的出入库信息orderbyid"
Adodc1.Refresh
AddTitle
EndSub
其中,AddTitle函数用于向DataGrid1添加表头,实现如下:
'添加数据库字段标题的事件过程
PrivateSubAddTitle()
DataGrid1.Columns.Item(0).Caption="编号"
DataGrid1.Columns.Item
(1).Caption="名称"
DataGrid1.Columns.Item
(2).Caption="类型"
DataGrid1.Columns.Item(3).Caption="数量"
DataGrid1.Columns.Item(4).Caption="单价"
DataGrid1.Columns.Item(5).Caption="入库日期"
DataGrid1.Columns.Item(6).Caption="备注"
EndSub
(2)点击“添加”按钮,清空编辑框,让用户输入新的待添加内容
PrivateSubCommand1_Click()
'清空文本框中的内容
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
Text1.SetFocus
EndSub
(3)点击“删除”按钮,删除选中当前记录。
PrivateSubCommand2_Click()
'删除库存信息
c=MsgBox("确认要删除该信息吗",17,"提示信息")
Ifc=vbOKThen
'如果有错误则执行错误处理
OnErrorResumeNext
SetDB_AdoRs=Cnn.Execute("Deletefrom货物的出入库信息whereid='"+Text1.Text+"'")
MsgBox"数据删除成功",64,"提示信息"
'删除后刷新数据信息
Adodc1.RecordSource="select*from货物的出入库信息orderbyid"
Adodc1.Refresh
AddTitle
EndIf
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
EndSub
(4)点击“修改”按钮,修改当前的记录信息。
PrivateSubCommand3_Click()
'修改库存信息
c=MsgBox("确认修改信息吗",33,"提示信息")
Ifc=vbOKThen
'OnErrorResumeNext
SetDB_AdoRs=Cnn.Execute("UPDATE货物的出入库信息SETtb_title='"+Text2+"',tb_style='"+Text3+"',tb_nums='"+Text4+"',tb_values='"_
+Text5+"',tb_mark='"+Text6+"'whereid='"+Text1.Text+"'")
MsgBox"数据修改成功",64,"提示信息"
Adodc1.RecordSource="select*from货物的出入库信息orderbyid"
Adodc1.Refresh
AddTitle
EndIf
EndSub
(5)点击“保存”按钮,将保存文本框中输入的货物信息。
PrivateSubCommand4_Click()
IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""Then
MsgBox"保存的数据信息不能为空",48,"提示信息"
Else
DB_AdoRs.Open"select*from货物的出入库信息wheretb_title='"+Text2.Text+"'",Cnn,adOpenKeyset
IfDB_AdoRs.RecordCount>0Then'判断要保存的信息是否已经存在
MsgBox"该货物信息信息已经存在",48,"提示信息"
DB_AdoRs.Close
Else
DB_AdoRs.Close
c=MsgBox("确认保存信息吗",33,"提示信息")
Ifc=vbOKThen'如果选择的是“确定”按钮则保存信息
SetDB_AdoRs=Cnn.Execute("insertinto货物的出入库信息values("&Text1&",'"&Text2&"','"&Text3&"',"&Text4&","_
&Text5&",'"&Date&"','"&Text6&"')")
MsgBox"信息保存成功",64,"提示信息"
Else
EndIf
'保存数据后刷新数据信息
Adodc1.RecordSource="select*from货物的出入库信息orderbyid"
Adodc1.Refresh
AddTitle
EndIf
EndIf
EndSub(6)点击退出,销毁当前窗口。
PrivateSubCommand6_Click()
UnloadMe
EndSub
(7)单击DataGrid1中的相应记录,会在窗体左侧的各个编辑框中显示相应的内容。
PrivateSubDataGrid1_Click()
'OnErrorResumeNext
IfAdodc1.Recordset.RecordCount>0Then
Text1.Text=Adodc1.Recordset.Fields(0)
Text2.Text=Adodc1.Recordset.Fields
(1)
Text3.Text=Adodc1.Recordset.Fields
(2)
Text4.Text=Adodc1.Recordset.Fields(3)
Text5.Text=Adodc1.Recordset.Fields(4)
Text6.Text=Adodc1.Recordset.Fields(6)
EndIf
EndSub
窗体的运行界面如下图所示:
3.6商品销售模块的设计与实现
在“商品销售管理”窗口中的“销售商品”下拉列表中选择要销售的商品之后,该商品的基本信息将显示在窗体中相应的文本框中,在输入销售数量和实收金额后,单击“确认销售”按钮完成销售商品的操作。
3.6.1窗体界面设计
(1)在工程中添加一个窗体,命名为Frm_Sale,将Caption属性设置为“商品销售管理”。
(2)在窗体上添加相应的控件,如下图所示。
(3)经过“工程”菜单下的“部件”命令将DataGrid数据表格控件添加到工具箱中,然后在窗体上添加1个数据表格控件DataGrid1。
(4)在窗体上添加2个ADO控件Adodc1和Adodc2,同时将DataGrid1的数据源属性DataSource设置为Adodc2。
3.6.2程序代码实现
(1)窗体启动时,将商品库存中的货物名称信息添加到下拉列表中,然后再将商品销售的数据信息显示在DataGrid1控件中。
PrivateSubForm_Load()
Adodc2.ConnectionString=MyStrs
Adodc2.RecordSource="select*from商品的销售信息orderbyid"
Adodc2.Refresh
AddTitle
'使用代码连接数据库与数据表
Adodc1.ConnectionString=MyStrs
Adodc1.RecordSource="select*from货物的出入库信息"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
Adodc1.Recordset.MoveFirst
Combo1.Clear'在添加数据时,首先清空控件中的内容
DoWhileAdodc1.Recordset.EOF=False'将货物出入库信息添加到下拉列表框控件当中
Combo1.AddItem(Adodc1.Recordset.Fields("tb_title"))
Adodc1.Recordset.MoveNext
Loop
EndIf
EndSub
PrivateSubAddTitle()
DataGrid1.Columns.Item(0).Caption="编号"
DataGrid1.Columns.Item
(1).Caption="名称"
DataGrid1.Columns.Item
(2).Caption="销售数量"
DataGrid1.Columns.Item(3).Caption="销售总价"
DataGrid1.Columns.Item(4).Caption="销售日期"
EndSub
(2)选择下拉列表中的商品之后,该商品的详细信息将显示在窗体中相对应的文本框中。
'商品详细信息
PrivateSubCombo1_Click()
Adodc1.RecordSource="select*from货物的出入库信息wheretb_title='"&Combo1.Text&"'"
Adodc1.Refresh
IfAdodc1.Recordset.RecordCount>0Then
Text1.Text=Adodc1.Recordset.Fields("id")
Text2.Text=Adodc1.Recordset.Fields("tb_style")
Text3.Text=Adodc1.Recordset.Fields("tb_nums")
Text4.Text=Adodc1.Recordset.Fields("tb_values")
Text5.Text=Adodc1.Recordset.Fields("tb_mark")
EndIf
'清空文本框中的内容
Text6.Text=""
Text7.Text=""
Text8.Text=""
Text9.Text=""
EndSub
(3)单击“确认销售”按钮,将完成销售商品的操作。
(4)当用户输入销售数量后并将输入焦点移开后,需要实时更新商品详细信息中的数量信息,即在原有数量的基础上减去用户输入的销售数量。
(3)和(4)的代码:
PrivateSubCommand1_Click()
Adodc1.ConnectionString=MyStrs
Adodc1.RecordSource="select*from货物的出入库信息wheretb_title='"&Combo1.Text&"'"
Adodc1.Refresh
DimaAsInteger
DimbAsInteger
a=Val(Text7.Text)
b=Val(Text4.Text*Text6.Text)
IfText6.Text=""OrText7.Text=""Then
MsgBox"请补全信息!
",64,"提示信息"
Else
Ifa MsgBox"信息输入有误,请重新输入! ",64,"提示信息" Else Text8.Text=Text4.Text*Text6.Text Text9.Text=Text7.Text-Text8.Text Text3.Te
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 库存 销售 管理 系统