数据库课程设计——库存销售管理系统_第1页
数据库课程设计——库存销售管理系统_第2页
数据库课程设计——库存销售管理系统_第3页
数据库课程设计——库存销售管理系统_第4页
数据库课程设计——库存销售管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数 据 库 课程 设计实验报告姓名:黄世增班级:计算机 1403 学号: 实验名称使用 visual basic 6.0 和 sql server 2014开发库存销售管理系统2. 实验目的使用 visual basic 6.0 开发工具开发一个库存销售管理系统,该系统采用sql server 2014数据库保存库存货物信息,数据库中包括货物出入库信息和商品销售等信息。该系统包括系统登录、 货物出入库管理、商品销售管理和商品统计管理等功能,通过这些功能实现对库存中货物信息和销售信息进行管理。系统主要实现以下目标:实现系统登录及修改用户密码的功能。对库存货物的出入库信息

2、进行管理。对商品的销售信息进行管理。根据销售日期统计商品的销售数据。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:库存货物的入库

3、日期,时间日期类型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:用户名称,建议长度

4、为50 的 varchar 类型。tb_pas:用户的密码信息,建议长度为50 的 varchar 类型。3.2 设计连接数据库的模块需要首先建立一个连接数据库的模块,这样应用程序才能与数据库中的数据表取得连接,将数据信息从数据表中读出到应用程序中或通过应用程序保存到数据表中。为此,建立一个负责数据库连接的模块如下:(1)选择“工程”菜单下的“添加模块”命令,在应用程序中添加一个模块module1 。(2)module1 模块的实现如下:数据连接模块public mystrs as string public db_adors as new adodb.recordset 后添加一个记录集对象

5、public db_adors1 as new adodb.recordset 后添加一个记录集对象public db_adors2 as new adodb.recordset 后添加一个记录集对象public function cnn() as adodb.connection 定义连接字符串函数set cnn = new adodb.connection cnn.open provider=sqloledb.1;integrated security=sspi;persist security info=false;initial catalog=db_kcgl;data source=

6、. end function public sub main() mystrs = provider=sqloledb.1;integrated security=sspi;persist security info=false;initial catalog=db_kcgl;data source=. 显示系统登录窗体form1.show end sub (3)这里需要将程序的入口设置为模块中的main() 函数。选择“工程”菜单下的“工程属性”命令,在“通用”标签中进行相应设置。3.3 系统登陆模块设计在本库存销售管理系统中,只有授权用户 (管理员) 可以登录并进行库存和销售信息管理与维护

7、, 因此需要一个系统登录界面,防止非法用户登录到系统中,从而保证了应用程序的安全性和可靠性。3.3.1 登录窗体设计设计如下的登录窗体,在窗体中要添加一个ado 控件,命名为adodc1。(1)登录窗体启动之后,需要将系统用户的信息数据表中的所有用户名称信息添加到窗体的 combobox 控件的 op_name 属性中,即实现在“操作员名称”下拉列表中可以出现系统当前的操作员信息,供登录用户选择。private sub form_load() 使用代码连接数据库与数据表adodc1.connectionstring = mystrs adodc1.recordsource = select *

8、 from 系统的用户信息 adodc1.refresh if adodc1.recordset.recordcount 0 then adodc1.recordset.movefirst op_name.clear 在添加数据时,首先清空控件中的内容do while adodc1.recordset.eof = false 将操作员信息添加到下拉列表框控件当中op_name.additem (adodc1.recordset.fields(tb_name) adodc1.recordset.movenext loop end if end sub (2)当用户在“操作员名称”下拉列表中选择操

9、作员的名称,并且在“操作员密码”文本框输入正确的密码之后,单击“确定”按钮将登录到系统中,否则将无法登录系统。具体实现如下:private sub cmd_ok_click() adodc1.recordsource = select * from tb_user where tb_name = & op_name.text & adodc1.refresh if adodc1.recordset.recordcount 0 then mpassword = adodc1.recordset.fields(tb_pas) if txt_password.text = mpass

10、word then 判断数据的密码是否正确name1 = op_name.text frm_main.statusbar1.panels.item(2).text = 当前操作 员: + adodc1.recordset.fields(tb_name) frm_main.show 通过身份验证则显示主窗体,登录到系统当中unload me else msgbox 密码不正确 ,请您确认后重新输入, , 提示信息 txt_password.text = txt_password.setfocus end if else msgbox 对不起没有此用户的信息, , 提示信息 op_name.tex

11、t = txt_password.text = end if end sub 3.4 系统主界面的实现3.4.1 主界面设计(1)在工程中添加一个窗体,将窗体命名为frm_main,将窗体caption 属性设置为“库存管理系统”。(2)添加一个toolbar 控件,工具栏由“修改密码”、“库存管理”、“商品销售”、“销售统计”和“退出系统”5 个按钮组成。(3)添加一个statusbar 控件,使得状态栏中能够显示登录操作员姓名和当前系统时间等信息。(4)在主窗体上添加一个时钟控件,用于显示系统当前日期和时间信息。(5)在主窗体上添加一个label 标签控件,将其caption 属性设置为“

12、库存管理系统”。3.4.2 代码实现(1)窗体启动时,在窗体的状态栏中将显示当前系统的日期信息:private sub form_load() statusbar1.panels.item(3).text = format(now, yyyy年 mm 月 dd 日) end sub (2)单击窗口工具栏按钮时,将会调用系统的各个子功能模块:private sub toolbar1_buttonclick(byval button as mscomctllib.button) select case button.index case 1 frm_pas.show 修改密码case 2 frm_

13、inout.show 库存管理case 3 frm_sale.show 商品销售case 4 frm_stat.show 销售统计case 5 end 退出系统end select end sub (3)在时钟控件的timer 事件中添加如下代码,实现在状态栏中显示当前系统时间的功能:private sub timer1_timer() statusbar1.panels.item(4).text = time end sub (4)再向状态栏中添加公司名称,操作员和公司网址信息。系统主窗体的运行界面如下图所示:3.5 出入库管理模块的设计与实现该模块主要是记录和维护库存中的货物信息,其中包括

14、对货物信息的删除、修改和保存等方面的功能。3.5.1 窗体界面设计(1)在工程中添加一个窗体,命名为frm_inout,将窗体caption 设置为“出入库管理”。(2)在窗体上添加相应的控件,如下图所示。(3)通过“工程”菜单下的“部件”命令将datagrid 数据表格控件添加到工具箱中,然后在窗体上添加1 个数据表格控件datagrid1 。(4)在窗体上添加一个ado 控件 adodc1 ,同时将datagrid1 的数据源属性datasource 设置为 adodc1 。3.5.2 程序代码实现(1)窗口载入时,将数据库中商品表数据读出。private sub form_load()

15、adodc1.connectionstring = mystrs adodc1.recordsource = select * from 货物的出入库信息order by id adodc1.refresh addtitle end sub 其中, addtitle 函数用于向datagrid1 添加表头,实现如下:添加数据库字段标题的事件过程private sub addtitle() datagrid1.columns.item(0).caption = 编号 datagrid1.columns.item(1).caption = 名称 datagrid1.columns.item(2).

16、caption = 类型 datagrid1.columns.item(3).caption = 数量 datagrid1.columns.item(4).caption = 单价 datagrid1.columns.item(5).caption = 入库日期 datagrid1.columns.item(6).caption = 备注 end sub (2)点击“添加”按钮,清空编辑框,让用户输入新的待添加内容private sub command1_click() 清空文本框中的内容text1.text = text2.text = text3.text = text4.text = t

17、ext5.text = text6.text = text1.setfocus end sub (3)点击“删除”按钮,删除选中当前记录。private sub command2_click() 删除库存信息c = msgbox( 确认要删除该信息吗, 17, 提示信息 ) if c = vbok then 如果有错误则执行错误处理on error resume next set db_adors = cnn.execute(delete from 货物的出入库信息where id= + text1.text + ) msgbox 数据删除成功 , 64, 提示信息 删除后刷新数据信息adod

18、c1.recordsource = select * from 货物的出入库信息order by id adodc1.refresh addtitle end if text1.text = text2.text = text3.text = text4.text = text5.text = text6.text = end sub (4)点击“修改”按钮,修改当前的记录信息。private sub command3_click() 修改库存信息c = msgbox( 确认修改信息吗, 33, 提示信息 ) if c = vbok then on error resume next set

19、db_adors = cnn.execute(update 货物的出入库信息set tb_title= + text2 + ,tb_style= + text3 + ,tb_nums= + text4 + ,tb_values= _ + text5 + ,tb_mark= + text6 + where id= + text1.text + ) msgbox 数据修改成功 , 64, 提示信息 adodc1.recordsource = select * from 货物的出入库信息order by id adodc1.refresh addtitle end if end sub (5)点击“

20、保存”按钮,将保存文本框中输入的货物信息。private sub command4_click() if text1.text = or text2.text = or text3.text = or text4.text = or text5.text = or text6.text = then msgbox 保存的数据信息不能为空, 48, 提示信息 else db_adors.open select * from 货物的出入库信息where tb_title= + text2.text + , cnn, adopenkeyset if db_adors.recordcount 0 th

21、en 判断要保存的信息是否已经存在msgbox 该货物信息信息已经存在, 48, 提示信息 db_adors.close else db_adors.close c = msgbox( 确认保存信息吗, 33, 提示信息 ) if c = vbok then 如果选择的是“确定”按钮则保存信息set db_adors = cnn.execute(insert into 货物的出入库信息values( & text1 & , & text2 & , & text3 & , & text4 & , _ & text5 &

22、; , & date & , & text6 & ) msgbox 信息保存成功 , 64, 提示信息 else end if 保存数据后刷新数据信息adodc1.recordsource = select * from 货物的出入库信息order by id adodc1.refresh addtitle end if end if end sub(6)点击退出,销毁当前窗口。private sub command6_click() unload me end sub (7)单击 datagrid1 中的相应记录,会在窗体左侧的各个编辑框中显示相应的内容。pr

23、ivate sub datagrid1_click() on error resume next if adodc1.recordset.recordcount 0 then 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 =

24、 adodc1.recordset.fields(6) end if end sub 窗体的运行界面如下图所示:3.6 商品销售模块的设计与实现在“商品销售管理”窗口中的“销售商品”下拉列表中选择要销售的商品之后,该商品的基本信息将显示在窗体中相应的文本框中,在输入销售数量和实收金额后,单击“确认销售”按钮完成销售商品的操作。3.6.1 窗体界面设计(1)在工程中添加一个窗体,命名为frm_sale,将 caption 属性设置为“商品销售管理”。(2)在窗体上添加相应的控件,如下图所示。(3)通过“工程”菜单下的“部件”命令将datagrid 数据表格控件添加到工具箱中,然后在窗体上添加1

25、个数据表格控件datagrid1 。(4)在窗体上添加2 个 ado 控件 adodc1 和 adodc2,同时将datagrid1 的数据源属性datasource 设置为 adodc2。3.6.2 程序代码实现(1)窗体启动时,将商品库存中的货物名称信息添加到下拉列表中,然后再将商品销售的数据信息显示在datagrid1 控件中。private sub form_load() adodc2.connectionstring = mystrs adodc2.recordsource = select * from 商品的销售信息order by id adodc2.refresh addti

26、tle 使用代码连接数据库与数据表adodc1.connectionstring = mystrs adodc1.recordsource = select * from 货物的出入库信息 adodc1.refresh if adodc1.recordset.recordcount 0 then adodc1.recordset.movefirst combo1.clear 在添加数据时,首先清空控件中的内容do while adodc1.recordset.eof = false 将货物出入库信息添加到下拉列表框控件当中combo1.additem (adodc1.recordset.fie

27、lds(tb_title) adodc1.recordset.movenext loop end if end sub private sub addtitle() 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 = 销售日期 end sub (2)选择下拉列

28、表中的商品之后,该商品的详细信息将显示在窗体中相对应的文本框中。商品详细信息private sub combo1_click() adodc1.recordsource = select * from 货物的出入库信息where tb_title = & combo1.text & adodc1.refresh if adodc1.recordset.recordcount 0 then text1.text = adodc1.recordset.fields(id) text2.text = adodc1.recordset.fields(tb_style) text3.te

29、xt = adodc1.recordset.fields(tb_nums) text4.text = adodc1.recordset.fields(tb_values) text5.text = adodc1.recordset.fields(tb_mark) end if 清空文本框中的内容text6.text = text7.text = text8.text = text9.text = end sub (3)单击“确认销售”按钮,将完成销售商品的操作。(4)当用户输入销售数量后并将输入焦点移开后,需要实时更新商品详细信息中的数量信息,即在原有数量的基础上减去用户输入的销售数量。(3)

30、和( 4)的代码:private sub command1_click() adodc1.connectionstring = mystrs adodc1.recordsource = select * from 货 物 的 出 入 库 信 息where tb_title = & combo1.text & adodc1.refresh dim a as integer dim b as integer a = val(text7.text) b = val(text4.text * text6.text) if text6.text = or text7.text = the

31、n msgbox 请补全信息! , 64, 提示信息 else if a 0 then adodc1.recordset.movefirst combo1.clear 在添加数据时,首先清空控件中的内容do while adodc1.recordset.eof = false 将商品销售信息添加到下拉列表框控件当中combo1.additem (adodc1.recordset.fields(tb_title) adodc1.recordset.movenext loop end if end sub private sub addtitle() datagrid1.columns.item(

32、0).caption = 编号 datagrid1.columns.item(1).caption = 名称 datagrid1.columns.item(2).caption = 销售数量 datagrid1.columns.item(3).caption = 销售总价 datagrid1.columns.item(4).caption = 销售日期 end sub 窗体的运行结果如下:3.8 修改密码模块的设计与实现3.8.1 窗体界面设计(1)添加一个窗体,命名为frm_pas,将 caption 属性设置为“密码修改”。(2)在窗体上加入一个ado 控件 adodc1 。(3)设计窗体

33、的界面如下图。3.8.2 程序代码实现(1)载入窗口时连接操作员信息数据表private sub form_load() 使用代码连接数据库与数据表adodc1.connectionstring = mystrs adodc1.recordsource = select * from 系统用户的信息 adodc1.refresh end sub (2)当点击“确定”按钮时,首先判断用户输入的用户名和原密码信息是否正确,如果正确并且两次输入的新密码一致,就将用户密码修改为新密码。private sub command1_click() adodc1.recordsource = select * from 系统用户的信息where tb_name = & text1.text & adodc1.refresh if text1.text = then msgbox 请输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论