VB+ACCESS电脑销售系统论文_第1页
VB+ACCESS电脑销售系统论文_第2页
VB+ACCESS电脑销售系统论文_第3页
VB+ACCESS电脑销售系统论文_第4页
VB+ACCESS电脑销售系统论文_第5页
已阅读5页,还剩70页未读 继续免费阅读

VB+ACCESS电脑销售系统论文.pdf 免费下载

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

文档简介

目 录前言概要第一章 设计方案1. 开发背景2. 需求分析3. 可行性分析第二章 模块图及流程图1. 模块图2. 流程图第三章 功能分析第四章 程序清单及程序界面第五章 使用说明第六章 附录1. 开发人员分工名单2. 系统开发参考文献结束语前 言本文论述了销售管理系统的开发过程,它包括了软件的开发环境,开发工具以及相关技术、系统分析、系统设计、实现等内容。本系统能为企业繁重的工作带来极大的方便,提高了工作效率及工作准确性,能准确无误地查找货物的综合信息,为企业减少了许多工作细节。为了使此系统简单易学易用、功能强大、软件费用支出低、见效快等特点,我们选择VisualBasic6.0开发此系统。VisualBasic6.0起代码有效率以达到Visualc+的水平。在面向对象程序设计方面,VisualBasic6.0全面支持面向对你程序设计包括数据抽象、封装、对象与属性、类与成员、继承与多态。销售管理系统是所有企业所必须需要的。销售管理系统包括系统管理、备分、查询、添加、打印输出、修改等功能。如果单纯销售管理的话工作量将会很大,若公司的货物多而杂,货物信息的统计,其困难是不敢想象的,用计算机可使销售管理人员从繁重的工作中解脱出来 供使用者简单的操作便可及时、准确地获得所需的信息。本文既对面向对象的程序设计理念作了一定的阐述,同时VisualBasic6.0的窗口、项目管理器、窗体设计器、按钮、数据表格、ADO和DATA控件与数据库的连接、标签组合框、框架、文本框、菜单设计器以及系统的运行和使用等作了相关的介绍并插入了大量图片加以说明。本系统具有特点:1. 通用性:适用于规模不同的企业。2. 界面友好:提供给管理员良好的操作界面3. 准确性:通过良好的用户界面,可快准确地实现信息查询总之,SIMS系统的设计开发,为管理人员提高了工作效率和工作质量,由于时间仓促,本小组又是第一次尝试大的软件开发,经验欠缺,加之经验水平有限,系统可能不完善,敬请用户批评指正。在开发软件的过程中,得到了任老师、胡老师、陈老师、廖老师的指导与帮助,在此表示衷心的感谢。概 要销售管理系统(SIMS)软件设计步骤流程图如下:一、目的本系统宗旨在用微机计算机对企业的货物信息进行管理其内容包括货物的称、型号、价格等信息管理。SIMS的服务对象为企业的仓库管理人员,要求界面友好,不需要非计算机专业的专门培训即可使用该系统。 软件计划需求分析软件设计软件维护软件测试软件编码有错 测试记录程序文本说明书设计方案二、现有资源1) 人员:软件人员4人,要求接受过软件工程的基础训练,掌握 Microsoft Visual Studio 提供的 VisualBasic6.0。2) 硬件:C1.0G微处理器,主存RAM128M,10G硬盘,软盘即可。3) 操作系统 WindowsMe4) 鼠标或其他定位设备。第一章 设计方案一 开发背景现代科学技术的飞速发展,改变了世界,也改变了人类的生活,作为新世纪的大学生,应该站在时代发展的最前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。新的世纪需要具有丰富的现代化科学技术知识;能够独立解决所面临的任务;有活力、有创新意识的新型人才。同时在计算机技术迅猛发展的今天,一些企业也越来越需要一套完善的销售管理系统来管理有关销售等方面的信息,从而来减轻仓库管理人员的负担,提高仓库管理工作的效率,通过这样的系统可以做到企业的规范管理、系统化、自动化和快速查询等功能。因此为管理人员节省了大量的时间。此套销售管理系统界面美观,全中文操作,简单明了,易学易用,是企业实现规范管理的得力助手。二需求分析由于现代社会某些企业对货物管理系统的许可认定,越来越复杂,因此查找难度大,不便于管理,这样给货物管理带来很大的难度,且费时费工,因此需要有一个功能强大的软件,能够对货物统一合理的管理,而且目前市场上缺乏这件软件。基于这种情况,本小组开发出了销售管理系统。它能完成任意标准的分类管理货物的入库、出库、销售、查看货物等功能。并对整个销售管理系统设置了安全性、保密性,使其进一步规范化、科学化管理。三 可行性分析一个完整的销售管理系统即要有高度的可靠性又要有安全的可靠保密性,它即要求灵活简便,操作要求简单易行,用户界面要求简单友好,同时又具有一定的美观性,是用户菜单方便,不繁琐,便于查询、统计和打印,使冗余的操作变的十分简便,让人操作起来能得心应手。销售管理系统采用了多种控件相结合的设计方法,从而进一步完善了系统,满足了用户的需要,具体分为三大部分:1) 技术可行性一个完整的销售管理要灵活简便;操作要求简单易行,用户界面要求简单同时又具有一定的美观性,使用户菜单方便不繁琐,便于查询,本着以上的设计原则,本系统采用Photoshop7.0制作了用户界面,在设计图形处理方面,交好的利用了Photoshop7.0将许多与Windows交互的低级操作隐蔽起来,让程序员可以较快的编写良好的界面应用程序的特点,编制了本系统。2)操作可行性本系统将诸多功能尽可能在一个界面内完成,以便于用户操作。制作上使用Windows中文平台,中文显示提示信息,易学易懂,鼠标点击或快捷键操作方便迅速。3)经济可行性一个实用性较强的系统,要求开发成本底,对计算机配置的要求也不是过高,使得系统工作在一个较为合适的环境中,本销售管理系统正是基于这点开发出来的。本系统对大多数用到销售系统管理的行业均有使用价值,特别适用于各行企事业单位,通过本系统可大大减轻工作人员对货物进、销、存,打印报表,进行货物管理的工作量。开发次系统对计算机硬件和软件配置都不需要特别的要求,且开发周期短,故在经济上可行。第二章 模块图及流程图主程序流程图开 始输入密码密码正确主控窗体菜单日常业务登记库存管理查询统计业务信息管理结 束输入次数大于三Y N打印报表系统设置Y N入库登记流程图开 始是否登记是否保存输入内容保存成功数据保存到入库单是否退出退 出YNNNY Y查询 模块开 始是否查询输入查询条件开始查询继续查询结 束 YNN Y显示结果N系统管理密码修改流程图开 始请输入用户名请输入旧密码请输入新密码请输入确认密码两次密码是否相同用户名是否存在旧密码是否正确修改成功返 回 两次密码不同无此用户名旧密码不正确NNNYYY系统管理添加用户流程图开 始请输入用户名请输入密码请输入确认密码两次密码是否相同用户名是否存在添加成功返 回 两次密码不同用户名已存在YY NN销售登记流程图是否登记输入内容是否保存添加成功数据保存到销售库是否退出结 束开 始Y NN YY N入库退单登记流程图是否登记输入内容是否保存添加成功数据保存到入库退单是否退出结 束开 始Y NN YY N销售退单登记流程图是否登记输入内容是否保存添加成功数据保存到销售退单是否退出结 束开 始Y NN YY N入库查询系统查询流程图:开 始查询方式按货物名称按货物型号按供应商输入所查询值是否继续查询退 出 YNN输入所查询关系 Y显示结果NN YY入库退单查询系统查询流程图:开 始查询方式按货物名称按货物型号按供应商输入所查询值是否继续查询退 出 YNN输入所查询关系 Y显示结果NN YY库存查询系统查询流程图:开 始查询方式按货物名称按货物型号按供应商输入所查询值是否继续查询YNN输入所查询关系 Y显示结果NN YY退 出销售查询系统查询流程图:开 始查询方式按货物名称按货物型号按供应商输入所查询值是否继续查询 YNN输入所查询关系 Y显示结果NN YY退 出销售退货查询系统查询流程图:开 始查询方式按货物名称按货物型号按供应商输入所查询值是否继续查询退 出 YNN输入所查询关系 Y显示结果NN YY数据备份流程图:开 始选择盘符备 份?备 份结 束YY NN数据恢复流程图:开 始选择盘符恢 复?恢 复结 束YY NN打印流程图:开 始打印预览页面设置是否打印开始打印结 束 NYYNN Y入库信息修改流程图:开 始是否修改是否保存继续修改?结束Y N显示结果Y N输入内容 N入库信息删除流程图:开 始显示内容是否删除显示结果继续删除?结 束Y NYN第三章 SIMS功能分析一 系统管理模块功能分析销售管理系统(SIMS)是专为中小企业研发的计算机自动化管理软件,该软件充分发挥了计算机快捷、准确、方便、高效率等特点,从而提高了货物管理工作的效率,同时也为管理人员节省了大量的时间。自SIMS研发成功以后,与以前各管理方法相比,其功能有了质的飞跃。下面,让我们来共同了解本系统后的一些功能。系统管理是当今数据库软件的一个必不可少的组成部分。该动能在维护数据库方面起到了举足轻重的作用。同时,它为我们更好的管理数据库提供了保证;在使用该系统后,让我们真的可以做到“高枕无忧”。系统管理模块是一个系统软件最危险的模块。如果说把SIMS比做说是保险库的话,那么系统管理模块就是这个保险库的钥匙。所以,我们在操作SIMS时一定要做到认真、仔细、谨慎,避免出现不当的错误。为了防止此类事件的发生在用户进行系统操作时,都会出现信息提示框,提示用户是否继续操作,因此在很大程度上避免错误的发生。系统管理模块包括添假、修改、退出三个子模块,从而更方便了用户管理。二 货物信息管理货物信息管理模块顾名思义就是对货物信息进行管理,用它可以将手工管理变为计算机自动管理的系统,充分发挥了计算机快捷、准确、方便、高效率等特点,现在货物数量的不断增加,货物信息管理趋向了复杂化和多元化,越来越多的货物信息均采用了计算机化的管理模式,查询、添加、和修改等操作都使用了计算机的数据库技术,比起以前使用帐本的方法有了很大的进步,提供了很大的方便,本次程序设计的目的是编制一个对货物信息添加、修改、查询和打印等操作,为了使用户进一步了解我们开发的销售管理系统,现将各子模块的功能介绍下:1、查询模块查询模块是销售管理系统不可缺少的重要组成部分,它可以对要涉及到大部分工作,进行货物相关数据信息的输入,货物因其他原因进行调整,所以在库中的数据进行编辑之前,首先查询、浏览一下,查看其中的内容,显示出用户所需要的查询结果。当用户进入到查询窗体时,窗体用到了标签、文本框、命令按钮等相结合的方式来完成条件输入,操作时,在下拉列表框中选择所要查询的字段:商品名称、简称、规格等。选中其一,然后在文本框中选择所要查询的值,最后点击“查找”按钮,则在相对应的位置中显示出来,可用游动条来进行查看。本窗体还包括货物信息的全部浏览和统计。2、货物信息的添加与修改通过本模块可以对货物进行添加、修改、删除的操作,采用了VISUALBASIC内嵌的DATA数据控件,是访问数据库的一种方便的工具,它能够利用三种Recordset对象来访问数据库中的数据,数据控件提供有限的不需编程而能访问现存数据库的功能,允许将VISUALBASIC的窗体与数据库方便地进行连接。本窗体模块有“第一条”、“上一条”、“下一条”、“最后一条”、“修改”、“删除”等命令按钮,在这些命令按钮中,设置了提示对话框,总之操作简便灵活,功能强大,能显著的提高用户的工作效率。通过VISUALBASIC的窗体控件工具栏中,本模块中用到的控件简单的分为五类:1:标签、DATAGRID2:文本框、列表框、组合框3:制类:命令按钮、单选按钮4:器类:FRAME5:接类:DATA在以上控件中,每个控件含有多种属性,其各控件属如下:1 标签的值:1)、Alignment:将属性设置为0,即从标签的左边开始显示标题。2)、Autosize:将属性设置为 true,则可根据caption属性指定的标题自动调整标签的大小。3)、Borderstyle:用来标签的边框,可以取值为1,既标签带有边框。2 文本框的值:1)、Maxlength:该属性设置为02)、Mnltiline:其值为False只能输入单行文本3 命令按钮设置 Command1.Enabled=True 使命令按钮生效;设置Command.Enabled=False使命令按钮失去作用;Data(数据控件)负责数据库和工程之间的数据库交换,本身一起来完成访问数据库的任务。4 Data控件:连接数据库。5 DataGrid控件:与数据库相连接,以表格的形式显示结果。三 系统维护1进入到本模块,可以对用户进行浏览,添加和删除。点击添加用户可以添加普通和高级用户。2 修改密码如果遗忘密码之后,必须借助于具有管理该系统软件的内部人员进行对密码查询修改,具体步骤如下:首先,内部人员打开该系统,输入正确的密码其次,进入该系统的操作界面即显示主菜单的情况下。然后,打开密码表查看所遗忘的密码。最后,修改密码。面对现在的社会形势,许多企事业单位要对人员进行调动,向货物管理系统安全性要求高的信息,如果对其内部人员进行调动的话,为了使信息内容具有安全性,就要对密码进行修改,修改步骤如下:1)管理人员打开本系统,输入正确的密码后进入操作界面2)进入系统主菜单3)电击系统设置主菜单3)再点击修改密码4)打开对话框这时鼠标定位到第一文本框中等待用户输入用户名、旧密码,如果密码输入正确,回车后鼠标定位到下一个文本框,用户输入新密码后,系统将新密码进行判断,如符合要求,用户可重新确定密码。如果正确系统提示密码修改成功。如果密码输入不符合要求系统自动弹出提示对话框,给于提示,确定后,光标定位到密码文本框中,这样就完成了密码修改。四、打印功能为了提高SIMSR 透明度与清晰度,我们开发小组在该系统中加入了打印模块。可以分别对入库、销售、库存等信息进行打印。该打印模块中的各项都采用了简单的界面,在使用上操作简便,可用性强,用户可根据条件自由的实现组合打印、浏览结果等操作,因此,大大提高了打印质量和准确性。五 备份功能备份是管理人员维护SIMS安全性和完整性的重要操作。备份是恢复受损SIMS最容易,把意外损失降低到最小的保障方法。没有备份所有的数据可能会丢失。备份可以防止因表和SIMS遭受破坏、介质失效或用户错误而造成的数据灾难。良好的备份策略是SIMS安全运行的保证,是没个管理工作人员必须认真调整和仔细规划在能完成的任务。第四章 程序清单及程序界面日常业务登记程序代码:Dims,y,i 定义变量DimmydbAsDatabase 定义数据库Dimrs1AsRecordset 定义字段Dimrs2AsRecordsetDimlsphAsInteger 定义一个整型变量PrivateSubForm_Load()自动识别数据库路径DimstrAsString定义str=App.PathIfRight(str,1)Thenstr=str+EndIfData1.DatabaseName=str&仓库.mdbData2.DatabaseName=str&仓库.mdbData3.DatabaseName=str&仓库.mdbData1.RecordSource=kcData2.RecordSource=gysData3.RecordSource=rkdData1.RefreshData2.RefreshData3.Refreshmf1.Rows=102:mf1.Cols=12 定义mf1表的总行数、总列数定义mf1表的列宽和表头信息s=Array(300,1500,900,1200,900,1200,600, 600,600,900,1140,850)y=Array(xh,商品名称,简称,批号,厂家,规格,包装,单位,数量,单价,金额,备注)Fori=0To11mf1.ColWidth(i)=s(i):mf1.TextMatrix(0,i)=y(i)Nextimf1.FixedRows=1:mf1.FixedCols=1 定义mf1表的固定行数、固定列数定义mf1表的列序号Fori=1To101mf1.TextMatrix(i,0)=iNextirkrq.Text=Date 设置入库日期EndSubPrivateSubForm_Unload(CancelAsInteger)frm_main.Enabled=TrueEndSubPrivateSubgys_Change()DBList1.Visible=TrueDBList1.ReFill查询供应商信息Data2.RecordSource=select 供应商全称 fromgys where(gys.供应商全称 like+Chr(34) +gys.Text +* + Chr(34) +)or (gys.简称 like +Chr(34) + gys.Text + * +Chr(34)+)groupby 供应商全称Data2.RefreshEndSubPrivateSubdblist1_KeyPress(KeyAsciiAsInteger)DBList1.Visible=Truegys.Text=DBList1.BoundText 赋值给gys.textDBList1.Visible=Falsejsr.SetFocusEndSubPrivateSubgrid1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyReturnThen 当按回车键时WithData1.RecordsetIfData1.Recordset.RecordCount0ThenIfData1.Recordset.Fields(商品名称)Then赋值给mf1表格If.Fields(商品名称)Thenmf1.TextMatrix(mf1.Row,1)=.Fields(商品名称)If.Fields(简称)Thenmf1.TextMatrix(mf1.Row,2)=.Fields(简称)If.Fields(批号)Thenmf1.TextMatrix(mf1.Row,3)=.Fields(批号)If.Fields(产地)Thenmf1.TextMatrix(mf1.Row,4)=.Fields(产地)If.Fields(规格)Thenmf1.TextMatrix(mf1.Row,5)=.Fields(规格)If.Fields(包装)Thenmf1.TextMatrix(mf1.Row,6)=.Fields(包装)If.Fields(单位)Thenmf1.TextMatrix(mf1.Row,7)=.Fields(单位)If.Fields(进价)Thenmf1.TextMatrix(mf1.Row,9)=.Fields(进价)Text1.Text=mf1.Text 赋值给text1Text1.SetFocusmf1.Col=8 到达第8列grid1.Visible=FalseElseMsgBox(无数据选择!)grid1.Visible=False grid1不可见Text1.SetFocusEndIfEndIfEndWithText1.SetFocus text1获得焦点EndIfIfKeyCode=vbKeyEscapeThen 按ESC键grid1.Visible=False grid1不可见Text1.SetFocus text1获得焦点EndIfEndSubPrivateSubgys_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyReturnThen 按回车键jsr.SetFocus jsr获得焦点DBList1.Visible=False DBList1不可见EndIfIfKeyCode=vbKeyPageDownThen 按PageDown键DBList1.Visible=True DBList1可见DBList1.ReFillDBList1.SetFocus DBList1获得焦点EndIfEndSubPrivateSubjsr_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyReturnThen 按回车键Text1.Visible=Truemf1.Row=1:mf1.Col=1 到达第1行,第1列Text1.SetFocusEndIfIfKeyCode=vbKeyUpThengys.SetFocus 按向上键gys获得焦点EndSubPrivateSubmf1_Click()Ifmf1.Row=1Andmf1.TextMatrix(mf1.Row-1,8)Then 在mf1表格第1行或大于第1行时Text1.Visible=True text1可见Text1.SetFocusEndIfEndSubPrivateSubmf1_entercell()frm_main.Text1.Text=1Callfrm_main.entercell 调用函数EndSubPrivateSubmf1_RowColChange() 格式化金额Fori=1To100Ifmf1.TextMatrix(i,1)Thenmf1.TextMatrix(i,9)=Format(mf1.TextMatrix(i,9),#0.000)mf1.TextMatrix(mf1.Row, 10) = Val(mf1.TextMatrix(mf1.Row, 9) *Val(mf1.TextMatrix(mf1.Row,8)mf1.TextMatrix(i,10)=Format(mf1.TextMatrix(i,10),#0.00)EndIfNextiEndSubPrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)frm_main.Text1.Text=1IfKeyCode=vbKeyReturnThengrid1.Visible=FalseIfmf1.Col=1ThenWithData1.RecordsetIf.RecordCount0Then 当记录大于零时赋值给mf1表格If.Fields(商品名称)Thenmf1.TextMatrix(mf1.Row,1)=.Fields(商品名称)If.Fields(简称)Thenmf1.TextMatrix(mf1.Row,2)=.Fields(简称)If.Fields(批号)Thenmf1.TextMatrix(mf1.Row,3)=.Fields(批号)If.Fields(产地)Thenmf1.TextMatrix(mf1.Row,4)=.Fields(产地)If.Fields(规格)Thenmf1.TextMatrix(mf1.Row,5)=.Fields(规格)If.Fields(包装)Thenmf1.TextMatrix(mf1.Row,6)=.Fields(包装)If.Fields(单位)Thenmf1.TextMatrix(mf1.Row,7)=.Fields(单位)If.Fields(进价)Thenmf1.TextMatrix(mf1.Row,9)=.Fields(进价)mf1.Col=7EndIfEndWithEndIfCallfrm_main.movereturn 调用函数EndIfIfKeyCode=vbKeyUpThenIfmf1.Row1Thenmf1.Row=mf1.Row-1EndIfIfKeyCode=vbKeyDownAnd(mf1.TextMatrix(mf1.Row,2)ThenIfmf1.Row0Then 当记录大于零时grid1.Visible=True grid1可见Text1.SetFocusEndIfEndIfEndIfIf mf1.Col = 8 Then mf1.TextMatrix(mf1.Row, 10) = Val(mf1.TextMatrix(mf1.Row, 8) *Val(mf1.TextMatrix(mf1.Row,9)Ifmf1.Col=9Thenmf1.TextMatrix(mf1.Row, 10) = Val(mf1.TextMatrix(mf1.Row, 8) *Val(mf1.TextMatrix(mf1.Row,9)Ifmf1.TextMatrix(mf1.Row,8)=ThenMsgBox(数量无,请重新输入!)mf1.Col=8grid1.Visible=FalseEndIfEndIfIfmf1.Col=11ThenIfmf1.TextMatrix(mf1.Row,9)=ThenMsgBox(单价无,请重新输入!)mf1.Col=9grid1.Visible=FalseEndIfEndIfDimA,BAsSingleFori=1To31A=Val(mf1.TextMatrix(i,10)+A:B=Val(mf1.TextMatrix(i,8)+BIfmf1.TextMatrix(i,1)Andmf1.TextMatrix(i,8)Thenjs.Text=iNextihj.Text=A:hjsl.Text=B 计算合计金额,合计数量EndSubPrivateSubComdj_Click()查询所有入库数据,并按票号排序Data3.RecordSource=select*from rkd orderby 票号Data3.Refresh创建入库票号IfData3.Recordset.RecordCount0ThenIfNotData3.Recordset.EOFThenData3.Recordset.MoveLastIfData3.Recordset.Fields(票号)Thenlsph=Right(Trim(Data3.Recordset.Fields(票号),4)+1PH.Text=Date&rkd&Format(lsph,0000)EndIfElsePH.Text=Date&rkd&0001EndIf设置控件有效或无效gys.Enabled=True:jsr.Enabled=True:js.Enabled=True:hjsl.Enabled=True:hj.Enabled=TrueText1.Enabled=True:mf1.Enabled=True:Combc.Enabled=True:Comqx.Enabled=True:Comdj.Enabled=False清空数据Fori=1To100Forj=1To11mf1.TextMatrix(i,j)=NextjNextigys.SetFocusmf1.Row=1:mf1.Col=1 到达mf1表格的第1行,第1列EndSubPrivateSubCombc_Click()Setmydb=Workspaces(0).OpenDatabase(App.Path&仓库.mdb) 自动识别数据库路径Setrs1=mydb.OpenRecordset(rkd,dbOpenTable)Setrs2=mydb.OpenRecordset(kc,dbOpenTable)查询库存商品信息Data1.RecordSource=SELECT*FROMKCData1.RefreshFori=1To100Ifmf1.TextMatrix(i,1)Andmf1.TextMatrix(i,8)Then添加入库商品信息到rkd表中rs1.AddNewIfmf1.TextMatrix(i,1)Thenrs1.Fields(商品名称)=mf1.TextMatrix(i,1)Ifmf1.TextMatrix(i,2)Thenrs1.Fields(简称)=mf1.TextMatrix(i,2)Ifmf1.TextMatrix(i,3)Thenrs1.Fields(批号)=mf1.TextMatrix(i,3)Ifmf1.TextMatrix(i,4)Thenrs1.Fields(产地)=mf1.TextMatrix(i,4)Ifmf1.TextMatrix(i,5)Thenrs1.Fields(规格)=mf1.TextMatrix(i,5)Ifmf1.TextMatrix(i,6)Thenrs1.Fields(包装)=mf1.TextMatrix(i,6)Ifmf1.TextMatrix(i,7)Thenrs1.Fields(单位)=mf1.TextMatrix(i,7)Ifmf1.TextMatrix(i,8)Thenrs1.Fields(数量)=mf1.TextMatrix(i,8)Ifmf1.TextMatrix(i,9)Thenrs1.Fields(进价)=mf1.TextMatrix(i,9)Ifmf1.TextMatrix(i,10)Thenrs1.Fields(金额)=mf1.TextMatrix(i,10)Ifmf1.TextMatrix(i,11)Thenrs1.Fields(备注)=mf1.TextMatrix(i,11)Ifgys.TextThenrs1.Fields(供应商)=gys.TextIfjsr.TextThenrs1.Fields(经手人)=jsr.TextIfrkrq.TextThenrs1.Fields(日期)=rkrq.TextIfPH.TextThenrs1.Fields(票号)=PH.Textrs1.Update 更新表查找库存商品信息Data1.Recordset.FindFirst商品名称 like+Chr(34)+mf1.TextMatrix(i,1)+Chr(34)+and 批号 like+Chr(34)+mf1.TextMatrix(i,3)+Chr(34)+and 产地 like+Chr(34)+ mf1.TextMatrix(i,4)+ Chr(34)+ and 规格 like +Chr(34)+ mf1.TextMatrix(i, 5)+Chr(34)+IfData1.Recordset.NoMatchThen添加入库商品到kc表中rs2.AddNewIfmf1.TextMatrix(i,1)Thenrs2.Fields(商品名称)=mf1.TextMatrix(i,1)Ifmf1.TextMatrix(i,2)Thenrs2.Fields(简称)=mf1.TextMatrix(i,2)Ifmf1.TextMatrix(i,3)Thenrs2.Fields(批号)=mf1.TextMatrix(i,3)Ifmf1.TextMatrix(i,4)Thenrs2.Fields(产地)=mf1.TextMatrix(i,4)Ifmf1.TextMatrix(i,5)Thenrs2.Fields(规格)=mf1.TextMatrix(i,5)Ifmf1.TextMatrix(i,6)Thenrs2.Fields(包装)=mf1.TextMatrix(i,6)Ifmf1.TextMatrix(i,7)Thenrs2.Fields(单位)=mf1.TextMatrix(i,7)Ifmf1.TextMatrix(i,8)Thenrs2.Fields(库存)=mf1.TextMatrix(i,8)Ifmf1.TextMatrix(i,9)Thenrs2.Fields(进价)=mf1.TextMatrix(i,9)Ifmf1.TextMatrix(i,10)Thenrs2.Fields(库存金额)=mf1.TextMatrix(i,10)rs2.Update 更新表Else更新kc表中的库存及库存金额Data1.Recordset.EditData1.Recordset.Fields(库存) = Val(mf1.TextMatrix(i, 8) + Val(Data1.Recordset.Fields(库存)Data1.Recordset.Fields( 库 存 金 额 ) = Val(Data1.Recordset.Fields( 库 存 ) *Val(Data1.Recordset.Fields(进价)Data1.UpdateRecordEndIfEndIfNextirs1.Close:mydb.Close清空数据Fori=1To100Forj=1To11mf1.TextMatrix(i,j)=NextjNextigys.Text=:jsr.Text=:js.Text=:hjsl.Text=:hj.Text=Text1.Visible=False:DBList1.Visible=False 设置控件不可见mf1.Enabled = False: Combc.Enabled = False: Comdj.Enabled = True: Comqx.Enabled =FalseEndSubPrivateSubComqx_Click() 取消操作gys.Text=:jsr.Text=:js.Text=:hjsl.Text=:hj.Text=Fori=1To100Forj=1To11mf1.TextMatrix(i,j)=NextjNextigys.Enabled=False:jsr.Enabled=False:js.Enabled=False:hjsl.Enabled=False:hj.Enabled=FalseDBList1.Visible = False: Text1.Enabled = False: mf1.Enabled = False: Combc.Enabled =False:Comqx.Enabled=False:Comdj.Enabled=True:Comdj.SetFocusEndSubPrivateSubComend_Click()frm_main.Enabled=TrueUnloadMeEndSub查询模块程序代码:DimlsqlAsStringDimtmpsql1AsStringDimtpsql1AsStringPrivateSubCombo1_LostFocus()Combo1.AddItem商品名称Combo1.AddItem批号Combo1.AddItem产地Combo1.AddItem数量Combo1.AddItem供应商Combo1.AddItem日期Combo1.AddItem票号EndSubPrivateSubCombo2_LostFocus()Combo2.AddItemCombo2.AddItem=Combo2.AddItem Then gys(i).Text = Data1.Recordset.Fields(i) Elsegys(i).Text=NextiEndSubPrivateSubForm_Activate() 向combo1添加查询项目列表X=Array(供应商编号,供应商全称,简称,地址,所属地区,邮政编码,电话,传真)Fori=0To7Combo1.AddItem(X(i)NextiCombo1.Text=供应商全称初始化给gys(i)赋值IfData1.Recordset.RecordCount0ThenCallviewdata 调用函数EndIfEndSubPrivateSubForm_Load()Data1.DatabaseName=App.Path&仓库.mdb 自动识别数据库路径EndSubPrivateSubForm_Unload(CancelAsInteger)frm_main.Enabled=TrueUnloadMeEndSubPrivateSubComFind_Click()查询供应商信息Data1.RecordSource = select * from gys where (gys. & Combo1.Text & & like +Chr(34)+Text1.Text+*+Chr(34)+)Data1.RefreshCallviewdata 调用函数EndSubPrivateSubFrame2_DragDrop(SourceAsControl,XAsSingle,YAsSingle)EndSubPrivateSubgys_KeyDown(IndexAsInteger,KeyCodeAsInteger,ShiftAsInteger) 回车获得焦点IfKeyCode=vbKeyReturnAndIndex0ThenIfSSTab1.Tab=2AndComAdd.Enabled=FalseThenMsgBox(您正在处理数据,请取消数据处理,在执行本操作!)SSTab1.Tab=0ElseEndIfEndIfEndSubPrivateSubCmdMD_Click(IndexAsInteger)SelectCaseIndexCaseIs=0 移到第一条记录IfNotData1.Recordset.BOFThenData1.Recordset.MoveFirstCaseIs=1 移到上一条记录IfData1.Recordset.RecordCount0ThenIfData1.Recordset.BOF=FalseThenData1.Recordset.MovePreviousIfData1.Recordset.BOF=TrueThenData1.Recordset.MoveFirstEndIfCaseIs=2 移到下一条记录IfData1.Recordset.RecordCount0ThenIfData1.Recordset.EOF=FalseThenData1.Recordset.MoveNextIfData1.Recordset.EOF=TrueThenData1.Recordset.MoveLastEndIfCaseIs=3 移到最后一条记录IfData1.Recordset.RecordCount0ThenIfData1.Recordset.EOF=FalseThenData1.Recordset.MoveNextIfData1.Recordset.EOF=TrueThenData1.Recordset.MoveLastEndIfEndSelectCallviewdata 调用函数EndSubPrivateSubComAdd_Click() 允许用户添加新记录Fori=0To16gys(i).Text=gys(i).Enabled=TrueNextiComSaveM.Visible = True: ComSaveA.Visible = False: ComSaveM.Enabled = True:ComEsc.Enabled=TrueFori=0To3CmdMD(i).Enabled=FalseNextiComAdd.Enabled=False:ComModify.Enabled=False:ComDelete.Enabled=FalseSSTab1.Tab=0:gys(0).SetFocusEndSubPrivateSubComModify_Click() 允许用户修改记录IfData1.Recordset.RecordCount0ThenData1.Recordset.EditFori=0To16gys(i).Enabled=TrueNextiComSaveA.Visible = True: ComSaveA.Enabled = True: ComSaveM.Visible = False:ComEsc.Enabled=TrueFori=0To3CmdMD(i).Enabled=FalseNextiComAdd.Enabled=False:ComModify.Enabled=False:ComDelete.Enabled=FalseElseMsgBox(没有要修改的数据!)EndIfEndSubPrivateSubComSaveA_Click() 保存修改记录DimAAsStringA=MsgBox(您确实要修改这条数据吗?,vbYesNo)IfA=vbYesThenData1.Recordset.EditFori=0To16Ifgys(i).TextThenData1.Recordset.Fields(i)=gys(i).Textgys(i).Enabled=FalseNextiComSaveA.Enabled=False:ComEsc.Enabled=False:ComAdd.Enabled=TrueFori=0To3CmdMD(i).Enabled=TrueNextiComModify.Enabled=True:ComDelete.Enabled=True:Data1.Recordset.UpdateEndIfEndSubPrivateSubComSaveM_Click() 保存新增记录DimmydbAsDatabaseDimmyrs1AsRecordsetIfgys(0).TextAndgys(1).TextThenSetmydb1=Workspaces(0).OpenDatabase(App.Path&仓库.mdb)Setmyrs1=mydb1.OpenRecordset(gys,dbOpenTable)myrs1.AddNewFori=0To16Ifgys(i).TextThenmyrs1.Fields(i)=gys(i).TextNextimyrs1.Update:myrs1.Close:mydb1.Close:Data1.RefreshFori=0To3CmdMD(i).Enabled=TrueNextiComModify.Enabled=True:ComDelete.Enabled=TrueComSa

温馨提示

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

评论

0/150

提交评论