Access应用管理进销存

PPT
  • 阅读 44 次
  • 下载 0 次
  • 页数 113 页
  • 大小 2.504 MB
  • 2023-07-17 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档12.00 元 加入VIP免费下载
此文档由【精品优选】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Access应用管理进销存
可在后台配置第一页与第二页中间广告代码
Access应用管理进销存
可在后台配置第二页与第三页中间广告代码
Access应用管理进销存
可在后台配置第三页与第四页中间广告代码
Access应用管理进销存
Access应用管理进销存
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 113
  • 收藏
  • 违规举报
  • © 版权认领
下载文档12.00 元 加入VIP免费下载
文本内容

【文档说明】Access应用管理进销存.pptx,共(113)页,2.504 MB,由精品优选上传

转载请保留链接:https://www.ichengzhen.cn/view-282723.html

以下为本文档部分文字说明:

第12章Access在进销存管理中的应用本章学习要点•了解进销存系统的概念•系统的功能设计•系统的模块设计•表和表关系的设计•查询的设计•窗体的创建•报表的创建•宏命令和VBA代码的创建•系统的运行与应用12.1实例导航•系统功能•开发要点12.1.1系统功能•我们所设

计的进销存系统的主要功能包括如下。–商品基本信息的管理:用来处理进出库的商品信息,包括新建、修改、删除和查询等。–订单信息的处理:是整个系统的工作流程的起点,包括订单的增减、查询,以及订单在处理过程中(如发货确认等)状态的改变。–产品入库

出库管理:完成记录,修改商品入出库信息,并有库存报表功能。–查询功能:允许管理员可以按编号、日期对进货商的销售信息进行查询;对入库的产品信息进行详细的查询,包括编号、名称、入库时间等。12.1.2开发要点•理解数据

表的结构,掌握各表之间关系的建立原理,熟悉查询和窗体的设计,对进销存管理系统有比较清楚的了解,从而开发出完整的进销存管理系统。12.2系统需求分析设计•需求分析•模块设计12.2.1需求分析•用户的需求主要有以下内容。–将订单、商品、供应商、客户、商品、进货、销售等

信息录入管理系统,提供修改和查询。–能够对各类信息提供查询。–能够统计进出库的各类信息,对进库、销售、库存进行汇总,协调各部门的相互工作。12.2.2模块设计•按照前面的需求分析,我们设计的进销存系统分为以下几个模块。–系统的基本配置模块:包括产品、供应

商、客户的基本资料的录入。–产品进出库处理模块:主要包括对订单信息的处理和采购单的处理,一般产品入出库的处理。–查询模块:对系统中的各类信息,如供应商资料、出入库详细资料等进行查询,支持多个条件的复合查询。–

报表显示模块:根据用户的需要和查询结果来生成报表。12.3数据库结构的设计•数据表结构需求分析•建立空数据库系统•创建数据表•定义数据表之间的关系12.3.1数据表结构需求分析•在本系统中,我们设计了10张数据

表,各个表存储的信息如下所示。–“管理员”表:存放系统管理人员信息,一般是企业管理人员的用户名和密码。–“产品信息”表:存储产品的基本信息,如产品编号、产品名称、规格型号、计量单位、供应商编号、产品类别等。

–“供应商”表:存放产品供应商的相关信息,比如供应商编号、供应商名称、联系人姓名、联系人职务、业务电话、电子邮件等。–“客户”表:记录客户的基本信息,比如客户编号、客户姓名、客户地址、联系电话、电子邮件、备注等。–“订单”表:记录订单的基本信息,

如订单编号、客户编号、产品编号、供应商编号、销售单价、订购数量、订单金额、预定时间、订单时间等基本预订信息。–“订单处理明细”表:除了订单基本信息外,还要增加付款信息和发货信息,如付款方式、付款时间、发货地址、发货时间、发货人等。–“入库记录”表:存放产品入库的信息。–“出库记录”表:存放产品

出库的信息。–“业务类别”表:记录进出库的业务类型。–“库存”表:记录产品的库存信息。12.3.2建立空数据库系统•建立一个“进销存管理系统.accdb”空白数据库。第一步:打开Access2007,单击【开始使用MicrosoftOfficeAccess】页中的

【空白数据库】按钮,如下图所示。第二步:系统出现如下图所示的窗口,选择合适的路径,输入数据库名称为“进销存系统.accdb”。12.3.2建立空数据库系统•建立一个“进销存管理系统.accdb”空白数据库。第三步:单击【创建】

按钮,完成该数据库的创建。系统自动建立了一个名为“表1”的数据表。12.3.3创建数据表•“管理员”表•“产品信息”表12.3.3创建数据表•“供应商”表12.3.3创建数据表•“客户”表12.3.3创建数据表•

“订单”表12.3.3创建数据表•“订单处理明细”表12.3.3创建数据表•“入库记录”表12.3.3创建数据表•“出库记录”表12.3.3创建数据表•“业务类别”表•“库存”表12.3.4定义数据表之间的

关系•建立“产品信息”表和“出库记录”表之间的表关系。第一步:启动Access2007,打开“进销存管理系统.accdb”。第二步:切换到【数据库工具】选项卡,单击【关系】按钮,如下图所示。第三步:单击右键,在弹出的快捷菜单中选择【显示

表】命令,按住Ctrl键,选择所有的表,然后单击【添加】按钮,把所有的表都添加上去,如下图所示。12.3.4定义数据表之间的关系•建立“产品信息”表和“出库记录”表之间的表关系。第四步:设置表的参照完整性。我们以“产品信息”表中的“产品编号”字段与“出库记录”表中的“产品

编号”字段为例。按下鼠标左键拖动“产品信息”表中的“产品编号”字段到“出库记录”表中的“产品编号”字段上,释放鼠标左键,系统弹出【编辑关系】对话框,如下图所示。第五步:选中【实施参照完整性】复选框,这样就建立了表之间的一对多关系,如下图所示。12.3.

4定义数据表之间的关系按照同样的步骤,可以建立起其他表之间的关系。最终建立了下面的关系图。我们设计的数据库表中,各种表关系如下表所示。12.4窗体的实现•“登录”窗体•“切换面板”窗体•“订单处理”窗体•“发货确认”窗体•“产品进

库”窗体•“供应商查询编辑”窗体•“进货资料查询”窗体•“密码管理”窗体12.4.1“登录”窗体•运用“模式对话框”窗体,设计本系统的“登录”窗体。第一步:启动Access2007,打开“进销存管理系统.accdb”数据库。第二步:

切换到【创建】选项卡,选择【窗体】组中【其他窗体】下拉菜单中的【模式对话框】选项,如下图所示。第三步:出现一张空白窗体,已有两个按钮:【确定】和【取消】,如下图所示。12.4.1“登录”窗体•运用“模式对话框”窗体,设计本系统的“

登录”窗体。第四步:调整窗体布局,在窗体上添加几个控件,属性值设置如下表所示。第五步:设置主体背景颜色。在主体区域中右击,在弹出的快捷菜单中选择【填充/背景色】选项,弹出如下图所示的菜单。12.4.1“登录”窗体•运用“模式对话框”

窗体,设计本系统的“登录”窗体。第六步:调整窗体布局,完成后的“登录”窗体如下图所示。12.4.2“切换面板”窗体•运用窗体的【设计视图】,设计本系统的“切换面板”窗体。第一步:启动Access2007,打开“进销存管理系统.a

ccdb”数据库。第二步:切换到【创建】选项卡,单击【窗体】组中的【窗体设计】按钮,出现一张空白窗体。第三步:调整窗体布局。添加一个“矩形”控件,“背景”属性设为“#9DBB61”。添加标题控件,并将标题设为“进销存系统示例”

。添加一个徽标控件,图片为“罗斯文.png”,创建后的效果如下图所示。12.4.2“切换面板”窗体•运用窗体的【设计视图】,设计本系统的“切换面板”窗体。第四步:利用命令按钮控件和标签控件,为窗体添加几个按钮和标签,来处理管理员

的操作。各个控件的属性设置如下表所示。第五步:这样就完成了“切换面板”窗体的创建,完成后的结果如下图所示。12.4.3“订单处理”窗体•运用窗体向导,设计本系统的“订单处理”窗体。第一步:启动Access20

07,打开“进销存管理系统.accdb”数据库。第二步:切换到【创建】选项卡,选择【窗体】组中【其他窗体】下拉菜单中的【窗体向导】选项。第三步:按照前面章节介绍的步骤,在【表/查询】下拉列表框中选择“表:订单”,将【可选字段】列表框中的所有字段加入右面【选定字段】列表框中,然后依次确定即

可。系统自动生成的窗体如下图所示。12.4.3“订单处理”窗体•运用窗体向导,设计本系统的“订单处理”窗体。第四步:若要加上按钮控件,则切换到【窗体设计工具】选项卡,单击【使用控件向导】按钮,则所有添加控件都会在向导模式下进行。第五步:单击【命令控件】按钮,出现如下图所示的

【命令按钮向导】对话框,我们以“保存记录”为例加以说明。12.4.3“订单处理”窗体•运用窗体向导,设计本系统的“订单处理”窗体。第六步:单击【下一步】按钮,为按钮添加上合适的图标或者文字,如下图所示。第七步:单击【下

一步】按钮,在弹出的指定按钮名称的对话框中输入该按钮的名称,如下图所示。12.4.3“订单处理”窗体•运用窗体向导,设计本系统的“订单处理”窗体。第八步:修改如下表所示主要控件的属性,设置窗体的页眉和页脚。第九步:这样我们就完成了“订单处理”窗体的创建过程,完成后的界面如下

图所示。12.4.4“发货确认”窗体•运用窗体的【设计视图】,设计本系统的“发货确认”窗体。第一步:单击右键,在弹出的快捷菜单中选择【窗体页眉/页脚】选项,进行窗体页眉设置。步骤和前面一样,这里不再赘述。第二步:在窗体上添加控件,属性见下表所示。第三步:完成后的“发货确认”窗体如下图所示。12

.4.5“产品进库”窗体•运用窗体的【设计视图】,设计本系统的“产品进库”窗体。第一步:单击【创建】选项卡中【窗体】组中的【窗体设计】按钮,会出现一个空白窗体。第二步:为窗体设计一个窗体页眉,单击右键,弹出如下快捷菜单。12.4.5“产品进库”窗体•运用窗体的【设计视图】,设计本系统的“产品进库

”窗体。第三步:选择【窗体页眉/页脚】选项,窗体中出现【窗体页眉】区域,如下图所示。第四步:为窗体添加一个标签,设置标题为“产品进库管理”,再添加一个徽标控件,图片设置为“罗斯文.png”。第五步:为窗体添加表中的字段。单击【主体】区域,单击【设计】

选项卡下的【添加现有字段】按钮,弹出【字段列表】窗格,如下图所示。12.4.5“产品进库”窗体•运用窗体的【设计视图】,设计本系统的“产品进库”窗体。第六步:将“入库记录”表的所有字段添加到窗体上,并排列整齐。第七步:为窗体增加4个导航按钮,分别为“第一个”、“前一个

”、“后一个”、“最后一个”。添加的方法利用【命令按钮向导】对话框,如下图所示。第八步:用同样的方法,为窗体加上几个功能按钮,标题分别为“添加记录”、“保存记录”、“删除记录”、“进货查询”、“库存查询”

和“返回”。12.4.5“产品进库”窗体•运用窗体的【设计视图】,设计本系统的“产品进库”窗体。第九步:如果要查看数据表格式的入库记录,我们可以在窗体上添加一个子窗体。第十步:单击【控件】组中的【子窗体/子

报表】按钮,并拖放到窗体中,出现【子窗体向导】对话框,如下图所示。第十一步:选中【使用现有的表和查询】单选按钮,单击【下一步】按钮,弹出选择字段的对话框。在对话框的【表/查询】下拉列表框中选择“表:入库记录”,并把“入库记录”表的全部字段加入到【选定字段】列表框中,如下图所示。

12.4.5“产品进库”窗体•运用窗体的【设计视图】,设计本系统的“产品进库”窗体。第十二步:单击【下一步】按钮,在弹出的对话框中选择主/次字段的链接方式。我们选中【从列表中选择】单选按钮,并在下面的列表框中选择用“入库编号”显示,如下图所示。第十三步:

单击【下一步】按钮,在弹出的对话框中输入子窗体的名称,如下图所示。12.4.5“产品进库”窗体•运用窗体的【设计视图】,设计本系统的“产品进库”窗体。第十四步:调整窗体的布局,这样我们就完成了“产品进库”窗体的创建。最终的创建效果如下图所示。12.4.6“供应商查询编辑”窗体•运

用窗体的窗体向导,设计本系统的“供应商查询编辑”窗体。第一步:切换到【创建】选项卡,选择【其他窗体】下拉菜单中的【窗体向导】选项,如下图所示。第二步:按照向导的提示,在【表/查询】下拉列表框中选择“表:供应商”,将【可选字段】列表框中的所有字段加入到右面【选定字段】列表框中。

其他设置按照以前的介绍设置,最后生成的窗体如下图所示。12.4.6“供应商查询编辑”窗体•运用窗体的窗体向导,设计本系统的“供应商查询编辑”窗体。第三步:我们还要在这个窗体上加上“记录导航”按钮和“记录操作”按钮,注意

在“使用控件向导”下添加。第四步:还添加了另外几个控件,属性设置见下表所示。第五步:调整窗体布局,完成后的窗体如下图所示。12.4.7“进货资料查询”窗体•设计本系统的“供应商查询编辑”窗体,在这里我们将用子窗口的方式来显

示查询结果。第一步:切换到【创建】选项卡,单击【窗体】组中的【窗体设计】按钮。第二步:添加若干控件,并设置它们的属性值,具体情况如下表所示。12.4.7“进货资料查询”窗体•设计本系统的“供应商查询编辑”窗体,在这里我们将用子窗口的

方式来显示查询结果。第五步:调整窗体布局,完成了“进货资料查询”窗体的创建,最终效果如下图所示。12.4.8“密码管理”窗体•“密码管理”窗体控件如下表所示。•完成后的“密码管理”窗体如下图所示。12.4.8“密码管理”窗体•“新密码”窗体控件如下表所示。•完成后的“新密码”窗体如下图所示。

12.5查询的实现•“订单处理查询”的设计•“供应商销售查询”的设计•“进货资料查询”的设计•“库存查询”的设计12.5.1“订单处理查询”的设计•使用“查询向导”来创建“订单处理查询”第一步:切换到【创

建】选项卡,然后单击【其他】组中的【查询设计】按钮,如下图所示。第二步:系统弹出如下图所示的【显示表】对话框,提示我们加入所需要的表,如下图所示。12.5.1“订单处理查询”的设计•使用“查询向导”来创建“订单处理查询”第三步:选择“订单表明细”表,

单击【添加】按钮,将该表添加到查询的【设计视图】中。第四步:依次选择该表中的全部字段,将其添加到查询的设计网格中,如下图所示。第五步:为字段添加查询条件。右击“订单编号”字段查询网格的【条件】行,在弹出的快捷菜单中选择【生成器】选项,如下图所示。12.5.1“订单处

理查询”的设计•使用“查询向导”来创建“订单处理查询”第六步:系统弹出【表达式生成器】对话框。在【表达式生成器】对话框中,我们为查询的字段设置条件,将它和窗体上的控件值联系到一起,如下图所示。第七步:保存该查询为“订单处理查询”。这

样,我们就完成了“订单处理查询”的创建。输入的查询条件如上图所示,这样把查询中的“订单编号”和窗体上的“订单编号”关联起来。12.5.2“供应商销售查询”的设计•设计“供应商销售查询”第一步:切换到【创建

】选项卡,然后单击【其他】组中的【查询设计】按钮。第二步:弹出的【显示表】对话框中,依次把“供应商”表、“订单”表和“产品信息”表添加到查询的【设计视图】中,然后关闭该对话框,如下图所示。第三步:选择要进行查询的字段。双击选择的字段,即可将字段加入到下面的查询设计网格中,最终结果

如下图所示。12.5.2“供应商销售查询”的设计•设计“供应商销售查询”第四步:为字段添加查询条件。右击“供应商编号”字段查询网格的【条件】行,在弹出的快捷菜单中选择【生成器】选项,如下图所示。第五步:在弹出的【表达式生成器】对话框中,我们为“供应商编号”字段设置查询条件,如下图所示。12.5.2

“供应商销售查询”的设计•设计“供应商销售查询”第六步:按照同样的步骤,设置字段的查询条件。整个查询的条件设置如下表所示。第七步:保存该查询为“供应商销售查询”,这样我们就完成了该查询的创建。12.5.3“进货资料查询”的设计•我

们建立的字段的信息如下表所示。12.5.3“进货资料查询”的设计•“进货资料查询”查询的【设计视图】如下图所示。12.5.4“库存查询”的设计•设计“库存查询”。第一步:切换到【创建】选项卡,然后单击【其他】组中的【查询设计】按钮,如下图所示。第二步:在弹出的【显示表】对话框中,将“库存”表和“

产品信息”表添加到查询【设计视图】中,将该表中的所有字段添加到查询设计网格中,如下图所示。12.5.4“库存查询”的设计•设计“库存查询”。第一步:为字段添加条件。右击“产品编号”字段的【条件】行,在弹出的快捷菜单中选择【生成器】选项。第二

步:系统弹出【表达式生成器】对话框,在该对话框中为查询的字段设置条件,将它和窗体上的控件值联系到一起。设置的查询条件如下图所示。第三步:保存该查询为“库存查询”,这样我们就完成了“库存查询”的创建。12.6报表的实现•“订单查询”报表•“供应商销售”报表•“库存”报表

12.6.1“订单查询”报表•“订单查询”报表用来显示订单查询的结果。第一步:切换到【创建】选项卡,单击【报表】组中的【报表向导】按钮,如下图所示。第二步:系统弹出【报表向导】对话框,在【表/查询】下拉列表框中选择“查

询:订单查询”,然后把所有字段作为选定字段,如下图所示。12.6.1“订单查询”报表•“订单查询”报表用来显示订单查询的结果。第三步:单击【下一步】按钮,弹出选择数据查看方式的对话框。我们选择“通过订单”选项,如下图所示。第四步:单击【下一步】按钮,弹出选择分组级别的对话框。本报表中

我们不添加分组级别,如下图所示。12.6.1“订单查询”报表•“订单查询”报表用来显示订单查询的结果。第五步:单击【下一步】按钮,在弹出的对话框中选择“产品编号”为排序字段,按升序排序,如下图所示。第六步:单击【下一步】按钮,

在弹出的对话框中选择布局方式为“表格”布局,布局方向为“纵向”,如下图所示。12.6.1“订单查询”报表•“订单查询”报表用来显示订单查询的结果。第七步:单击【下一步】按钮,在弹出的对话框中选择报表样式。我们选择【办公室】选项,如下图

所示。第八步:单击【下一步】按钮,输入该报表的名称为“订单查询报表”,如下图所示。12.6.1“订单查询”报表•“订单查询”报表用来显示订单查询的结果。第九步:单击【完成】按钮,完成“订单查询报表”的创建。此

时该报表的【设计视图】如下图所示。12.6.2“供应商销售”报表•建立“供应商销售”报表,作为供应商销售查询的输出结果。第一步:切换到【创建】选项卡,单击【报表】组中的【报表向导】按钮,如下图所示。第二步:在弹出的【报表向

导】对话框中,选择报表的数据源为“查询:供应商查询”,然后把查询中的所有字段作为选定字段,如下图所示。12.6.2“供应商销售”报表•建立“供应商销售”报表,作为供应商销售查询的输出结果。第三步:单击【下一步】按钮,在弹出的对话框中选择数据的查

看方式。我们选择“通过供应商”选项,如下图所示。第四步:单击【下一步】按钮,在弹出的对话框中不选择分组级别。第五步:单击【下一步】按钮,在排序方式中选择通过“预定时间”和“订购数量”进行排序,排序方式分别为“升序”和“降序”,如下图所示。12.6.2“供应商销

售”报表•建立“供应商销售”报表,作为供应商销售查询的输出结果。第六步:单击【下一步】按钮,在弹出的对话框中选择报表的样式为“办公室”。第七步:单击【下一步】按钮,输入报表标题为“供应商销售报表”,选中【预览报表】单选按钮。第八步:单击【完成】按钮,完

成“供应商销售报表”的创建。此时报表的【设计视图】如下图所示。12.6.3“库存”报表•在建立“库存”报表前,我们需要建立一个“库存查询”,建立查询的过程如下所示。第一步:切换到【创建】选项卡,单击【报表】组中的【报表向导】按钮,如下图所示。第二步:在弹出的【报表向导】对话框中,选择报表

的数据源为“查询:库存查询”,然后把查询中的所有字段作为选定字段,如下图所示。12.6.3“库存”报表•在建立“库存”报表前,我们需要建立一个“库存查询”,建立查询的过程如下所示。第三步:为报表添加分组级别“产品类别”,这样就把不同类别产品的信息分开了,如下图所示。第四

步:系统弹出提示排序次序的对话框,我们用“产品编号”作为排序的标准,单击【下一步】按钮。12.6.3“库存”报表•在建立“库存”报表前,我们需要建立一个“库存查询”,建立查询的过程如下所示。第五步:单击【下一步】按钮,在弹出的对话框

中选择报表的样式为“办公室”。第六步:单击【下一步】按钮,输入报表标题为“库存查询”,选中【预览报表】单选按钮。第七步:单击【完成】按钮,完成了报表的设计。此时,报表的【设计视图】如下图所示。12.7编码的实现•公用模

块•“登录”窗体代码•“切换面板”代码•“产品进库”窗体代码•“发货确认”窗体代码•“供应商”窗体代码•“进货资料查询”窗体代码•“密码管理”窗体代码12.7.1公用模块•建立公用模块第一步:我们首先要新建一个“模块”。单击【数

据库工具】选项卡下的VisualBasic按钮,进入VBA编辑器,如下图所示。第二步:选择【插入】菜单,选择【模块】命令,即可增加一个新模块,如下图所示。12.7.1公用模块•建立公用模块第三步:新建模块以后,VBA编辑器界面如下图所示。第四步:我们

在新增加的模块里,增加如下代码。OptionCompareDatabaseOptionExplicit'txtSQL为执行查询时所需要的SQL语句PublicFunctionExeSQL(ByValtxtSQLAsString)AsADODB.RecordsetOnErrorGoToE

xeSQL_Error'错误处理DimrsAsNewADODB.Recordsetrs.OpentxtSQL,CurrentProject.Connection,adOpenKeyset,adLockOptimistic'返回记录集对象SetExeSQL

=rs'返回值为ExeSQLExeSQL_Exit:Setrs=NothingExitFunctionExeSQL_Error:DimmsgstringAsStringmsgstring="查询错误"&Err.Descripti

onMsgBoxmsgstring,vbCriticalResumeExeSQL_ExitEndFunction12.7.1公用模块为了正确地使用ADO方式来对数据库查询,我们要在VBA编辑器下加入两个引用。选择【

工具】|【引用】命令,加入创建表有多种不同的方法,用户可以根据自己的习惯和工作的难易程度选择合适的创建方法。直接输入、表模板、表的【设计视图】是最常用的创建表的方法。MicrosoftActiveXDataOb

jects2.8Library和MicrosoftActiveXDataObjectsRecordset2.8Library,如下图所示。12.7.2“登录”窗体代码•已知我们设计的“登录”窗体如下图所示。12.7.2“登录”窗体代码•编写“登录”窗体

代码第一步:打开“登录”窗体的【设计视图】,右击,在弹出的快捷菜单中选择【属性表】选项,弹出【属性表】窗格,如下图所示。第二步:在【属性表】窗格的【所选内容的类型:窗体】下拉列表框中选择“窗体”选项。切换到【数据】选项卡,把【记录源】属性设置为“管理员”表。第三步:单击【确定

】按钮,并将【属性表】切换到【事件】选项卡,在【单击】属性的下拉列表框中选择【事件过程】选项,如下图所示。12.7.2“登录”窗体代码•编写“登录”窗体代码第四步:单击右边的省略号按钮,进入VBA编辑器

,添加“确定”按钮的代码,如下所示。OptionCompareDatabaseOptionExplicitDimmrcAsADODB.RecordsetDimtxtSQLAsStringDimiAsInteger'记录错误次数'确定按钮的代吗PrivateSubbtn_ok_Click()OnEr

rorGoToErr_btn_ok_Click'错误处理'判断用户名是否为空IfIsNull(txt_name)ThenMsgBox"请输入用户名!",vbCritical,"提示"txt_name.SetFocusElsetxtSQ

L="SELECT*from管理员where用户名='"&txt_name&"'"Setmrc=ExeSQL(txtSQL)Ifmrc.EOFThenMsgBox"没有此用户名称!",vbCritical,"提示"ElseIf(mrc(1)=Txtpwd)Thenmrc.Cl

oseSetmrc=NothingMe.Visible=False'打开切换面板DoCmd.OpenForm"切换面板"Elsei=i+1If(i<3)ThenMsgBox"您输入的密码不正确",vbOKOnly+vbExclamation,"提示"ElseMsgBox"你已经连

续3次错误输入密码,系统马上关闭!",vbOKOnly+vbExclamation,"警告"ExitSubDoCmd.CloseacForm,Me.NameDoCmd.QuitEndIfTxtpwd.SetFocusT

xtpwd.Text=""EndIfEndIfEndIfExit_btn_ok_Click:'错误处理ExitSubErr_btn_ok_Click:MsgBox(Err.Description)ResumeExit_btn_ok_ClickEndSub12.7.2“登录”窗体代码•

编写“登录”窗体代码此时的【代码】窗口如下图所示。用同样的方法,为“取消”按钮添加如下所示的VBA代码。'取消按钮的代码PrivateSubbtn_cancel_Click()If(MsgBox("确实要退出吗?",vbQu

estion+vbYesNo,"确认")=vbYes)ThenDoCmd.QuitacQuitSaveNoneEndIfEndSub此时的【代码】窗口如下图所示。12.7.3“切换面板”代码•已知我们设计的“切换

面板”窗体如下图所示。12.7.3“切换面板”代码•为“切换面板”窗体添加VBA代码。第一步:打开“切换面板”窗体的【设计视图】,单击【工具】组中的【属性表】按钮,弹出该窗体的【属性表】窗格,如下图所示。第二步:单击O

ption1按钮,并在【事件】选项卡下的【单击】事件中选择【事件过程】选项,如下图所示。12.7.3“切换面板”代码•为“切换面板”窗体添加VBA代码。第三步:单击右边的省略号按钮,进入VBA编辑器,添加Option1按钮的代码,如下所示。Privat

eSuboption1_Click()Me.Visible=FalseDoCmd.OpenForm"订单"EndSub此时的【代码】窗口如左图所示。12.7.3“切换面板”代码•为“切换面板”窗体添加VBA代码。用同样的方法,分别为剩余的按钮添

加代码,各个按钮的代码如下所示。PrivateSuboption2_Click()Me.Visible=FalseDoCmd.OpenForm"产品进库"EndSubPrivateSuboption3_Clic

k()Me.Visible=FalseDoCmd.OpenForm"发货确认"EndSubPrivateSuboption4_Click()Me.Visible=FalseDoCmd.OpenForm"供应商"EndSubPriva

teSuboption5_Click()Me.Visible=FalseDoCmd.OpenForm"进货资料查询"EndSubPrivateSuboption6_Click()Me.Visible=FalseDoCmd.OpenForm"密码管理"EndSub添加代码完成以后的最终视图如下图所

示。12.7.4“产品进库”窗体代码•已知设计的“产品进库”窗体如下图所示。12.7.4“产品进库”窗体代码•编写“产品进库”窗体代码第一步:进入“产品进库”窗体的【设计视图】,右击“库存”按钮,在弹出的快捷菜单中选择【事件生成器】选项,如下图所示。第二步:在弹出的【选择生成器】对话框中

选择【代码生成器】选项,如下图所示。12.7.4“产品进库”窗体代码•编写“产品进库”窗体代码第三步:单击【确定】按钮,进入VBA编辑器,在编辑器中为按钮添加事件过程。该过程的代码如下所示。'打开库存查询报表PrivateSubbtn_house_Click()IfIsNull(

产品编号)ThenMsgBox"您必须输入产品编号",vbCritical,"提示"EndIfDoCmd.OpenReport"库存报表",acViewPreview,,,acWindowNormalEndSub1

2.7.4“产品进库”窗体代码•编写“产品进库”窗体代码用同样的方法,为其他按钮添加事件过程。各个按钮的事件过程代码如下所示。'保存记录后,要更新库存数量PrivateSubbtn_save_Click()DoCmd.RunCommandacCmdSaveRecord

DimrsAsNewADODB.RecordsetDimstr_tempAsStringstr_temp="select*from库存Where产品编号="&产品编号&""rs.Openstr_temp,CurrentProject.Connection,adOpe

nDynamic,adLockOptimisticIfNotIsNull(rs)Thenrs("库存量")=rs("库存量")-入库数量Ifrs("库存量")>0Thenrs.UpdateElseMsgBox"删除记录出错",vbCriticalEnd

IfEndIfrs.CloseSetrs=NothingEndSub'删除记录后,要更新库存数量PrivateSubbtn_del_Click()DimrsAsNewADODB.RecordsetDimstr_tempAsStringstr_temp="select*from

库存Where产品编号='"&产品编号&"'"rs.Openstr_temp,CurrentProject.Connection,adOpenDynamic,adLockOptimisticIfNotIsNull(rs)Thenrs("库存量")=

rs("库存量")-入库数量rs.UpdateEndIfrs.CloseSetrs=NothingDoCmd.RunCommandacCmdDeleteRecordEndSubPrivateSubbtn_query_Click(

)DoCmd.OpenForm"进货资料查询"Me.Visible=FalseEndSubPrivateSubbtn_return_Click()Me.Visible=FalseEndSub12.7.4“产品进库”窗体代码•添加完事件过程

以后的【代码】窗口如下图所示。12.7.5“发货确认”窗体代码•已知我们设计的“发货确认”窗体如下图所示。12.7.5“发货确认”窗体代码•为“发货确认”窗体添加事件过程。第一步:打开“发货确认”窗体的【设计视图】,右击“确认”按钮,在弹出的快捷菜单中选择【事件生成器】选项,在弹出的【选择生

成器】对话框中选择【代码生成器】选项,单击【确定】按钮,打开VBA程序编辑器,输入“确认”按钮代码。第二步:重复步骤1,对“返回”按钮关联“单击事件”过程。相关代码如下。OptionCompareDatabase'确认按钮代码PrivateSubbrn_ok_Click()OnErro

rGoToErr_btn_ok_Click'用这个数组str(10)来保存订单记录中的数据Dimstr(10)AsStringDimmrcAsNewADODB.RecordsetIfIsNull(txt_no)Then

MsgBox"请输入要确认的订单编号!",vbCritical,"提示"txt_no.SetFocusEndIfIfIsNull(Combo1)ThenMsgBox"请输入支付方式!",vbCritica

l,"提示"Combo1.SetFocusCombo1.DropdownEndIf12.7.5“发货确认”窗体代码IfIsNull(txt_paydate)ThenMsgBox"请输入支付日期!",vbCritical,"提示"tx

t_paydate.SetFocusEndIfIfIsNull(txt_address)ThenMsgBox"请输入送货地址!",vbCritical,"提示"txt_address.SetFocus

EndIfIfIsNull(txt_name)ThenMsgBox"请输入送货人!",vbCritical,"提示"txt_name.SetFocusEndIfIfIsNull(txt_date)ThenMsgBox"请输入送货日期!",vbCritical,"提示"txt_date

.SetFocusEndIfDimstr_tempAsString'订单编号是整形,不需要单引号str_temp="select*from订单where订单编号="&txt_no&""Setmrc=Ex

eSQL(str_temp)Ifmrc.EOFThenMsgBox"没有该订单!",vbCritical,"提示"Else'记录查找到的订单信息str(0)=mrc("订单编号")str(1)=mrc("

客户编号")str(2)=mrc("产品编号")str(3)=mrc("供应商编号")str(4)=mrc("销售单价")str(5)=mrc("订购数量")str(6)=mrc("订单金额")str(7)=mrc("预定

时间")str(8)=mrc("订单时间")mrc.CloseSetmrc=NothingEndIfDimrsAsNewADODB.Recordsetrs.Open"订单处理明细",CurrentProject.Connection,adOpenDynam

ic,adLockOptimisticrs.AddNewrs("订单编号")=str(0)rs("客户编号")=str(1)rs("产品编号")=str(2)rs("供应商编号")=str(3)rs("预定时间")=str(7)rs("发货时间")=txt_daters("销售单价"

)=str(4)rs("订购数量")=str(5)rs("订单金额")=str(6)rs("付款方式")=Combo1rs("付款时间")=txt_paydaters("发货地址")=txt_addressrs("发货人

")=txt_namers("状态")="已处理"rs.Updaters.CloseSetrs=NothingMsgBox"成功添加了该信息!"12.7.5“发货确认”窗体代码'更新库存表中的数量Dimrs2AsNewADODB.Recordset'查找库存表中的

记录str_temp="select*from库存Where产品编号="&str(2)&""rs2.Openstr_temp,CurrentProject.Connection,adOpenDynamic,adLockOptimisticIf

Notrs2.EOFThenrs2("库存量")=rs2("库存量")-str(5)rs2.UpdateEndIfrs2.CloseSetrs2=NothingMsgBox"成功更新了库存!"'错误处理Exit_btn_ok_Clic

k:ExitSubErr_btn_ok_Click:ExitSubResumeExit_btn_ok_ClickEndSubPrivateSubbtn_cancel_Click()DimctlAsControlForEachctlInMe.ControlsSelectCasect

l.ControlTypeCaseacTextBoxIfctl.Locked=FalseThenctl.Value=NullCaseacComboBoxctl.Value=NullEndSelectNextMe.txt_no.SetFocusE

ndSubPrivateSubbtn_return_Click()Me.Visible=FalseDoCmd.OpenForm"切换面板",acNormalEndSub添加完代码后的【代码】窗体如下所示。12.7.6“供应商”窗体代码•已知我们设计的“供应商”窗体如下

图所示。12.7.6“供应商”窗体代码窗体中各个按钮的代码如下。“销售查询”按钮代码如下。PrivateSubbtn_query_Click()IfIsNull(供应商编号)OrIsNull(txt_date1)O

rIsNull(txt_date2)ThenMsgBox"您必须输入供应商编号、开始时间和截止时间。"txt_date1.SetFocusElseIf(txt_date1>txt_date2)ThenMsgBox"结束时间必须大于开始时间。"'焦点

移到第一个时间上txt_date1.SetFocusElse'打开供应商销售的报表DoCmd.OpenReport"供应商报表",acViewPreview,,,acWindowNormalEndIfEndIfEn

dSub“返回”按钮代码如下。PrivateSubbtn_return_Click()DoCmd.Closedocmd.OpenForm"切换面板"EndSub添加代码以后的【代码】窗体如下图所示。12.7.7“进货资料查询”窗体代码•已知我们设计的“进货资料查询”窗体如下

图所示。12.7.7“进货资料查询”窗体代码“清除”按钮添加的代码如下。OptionCompareDatabasePrivateSubbtn_clear_Click()OnErrorGoToErr_btn_clear_ClickDimctlAsControlForEachctlInMe.Con

trolsSelectCasectl.ControlTypeCaseacTextBoxIfctl.Locked=FalseThenctl.Value=NullCaseacComboBoxctl.Value=NullEndSelectNext'取消子窗体查询和统计总数Me.

进货资料查询子窗体.Form.Filter=""Me.进货资料查询子窗体.Form.FilterOn=FalseExit_btn_clear_Click:ExitSubErr_btn_clear_Click:ExitSubResumeExit_btn_clear_ClickEndSub“查询

”按钮的代码如下所示。PrivateSubbtn_query_Click()OnErrorGoToErr_btn_query_ClickDimstrAsString'判断是否为空,建立查询条件IfNotIsNu

ll(Me.Combo1)Thenstr=str&"([供应商名称]like'*"&Me.Combo1&"*')AND"EndIfIfNotIsNull(Me.txt_wuzi)Thenstr=str&"([产

品名称]like'*"&Me.txt_wuzi&"*')AND"EndIfIfNotIsNull(Me.txt_jinbanren)Thenstr=str&"([经办人]like'*"&Me.txt_jinbanren&"*')AND"EndIfIfNot

IsNull(Me.date1)Thenstr=str&"[入库日期]>=#"&Format(Me.date1,"yyyy-mm-dd")&"#)AND"EndIfIfNotIsNull(Me.date2)Thenstr=str

&"[入库日期]<=#"&Format(Me.date2,"yyyy-mm-dd")&"#)AND"EndIfIfLen(str)>0Thenstr=Left(str,Len(str)-5)EndIf'子窗体查询和统计,设置过滤条件Me.进货资料查询子窗体.Form

.Filter=strMe.进货资料查询子窗体.Form.FilterOn=True‘错误处理Exit_btn_query_Click:ExitSubErr_btn_query_Click:ExitSubResume

Exit_btn_query_ClickEndSub12.7.7“进货资料查询”窗体代码“返回”按钮的代码如下所示。PrivateSubbtn_return_Click()Me.Visible=FalseDoCmd.OpenForm"产品进库"EndSub添加代码完成

以后,【代码】窗体如下图所示。12.7.8“密码管理”窗体代码•已知我们设计的“密码管理”窗体如下图所示。12.7.8“密码管理”窗体代码“密码管理”窗体代码如下所示。'声明变量OptionCompareDatabaseDimrsAsNewADODB.RecordsetDimflagAsBoole

an'公用的判断为空的函数Subcommon()IfIsNull(txt_name)ThenMsgBox"请输入用户名!",vbCritical,"提示"txt_name.SetFocusflag=F

alseEndIfIfIsNull(txt_pwd1)ThenMsgBox"请输入密码!",vbCritical,"提示"txt_pwd1.SetFocusflag=FalseEndIfIfIsNull(txt_pwd2)ThenMsgBox"请输入确认密码

!",vbCritical,"提示"txt_pwd2.SetFocusflag=FalseEndIfIftxt_pwd1<>txt_pwd2ThenMsgBox"密码确认不正确!",vbCritical,"提示"txt_pwd1.SetFocustxt_pwd1=""txt_pwd2=""flag

=FalseEndIfEndSub“增加”按钮的代码如下所示。PrivateSubbtn_add_Click()flag=Truecommon'调用公用函数commonIfflag=TrueThenrs.Open"管理员",CurrentProject.Connection,adOpen

Dynamic,adLockOptimisticrs.AddNewrs("用户名")=txt_namers("密码")=txt_pwd1rs.Updaters.CloseSetrs=NothingMsgBox"您成功地添加了新用户!"EndIfEndSub1

2.7.8“密码管理”窗体代码“删除”按钮的代码如下所示。PrivateSubbtn_del_Click()flag=TruecommonIfflag=TrueThenDimstrAsStringDimrsAsNewAD

ODB.Recordsetstr="deletefrom管理员where用户名='"&txt_name&"'and密码='"&txt_pwd1&"'"DoCmd.RunSQLstrMsgBox"您成功地删除了该用户!"EndIfEndSub“返回”按钮的代码如下

所示。PrivateSubbtn_return_Click()Me.Visible=FalseDoCmd.OpenForm"切换面板"EndSub“修改”按钮的代码如下所示。PrivateSubbtn_xiugai_Click()flag=Tr

uecommonIfflag=TrueThenDimstrAsStringstr="select*from管理员where用户名='"&txt_name&"'and密码='"&txt_pwd1&"'"Setrs=ExeSQL(str)IfNotrs

.EOFThenuser=txt_nameDoCmd.OpenForm"新密码"ElseMsgBox"找不到该用户!"EndIfEndIfEndSub12.7.8“密码管理”窗体代码“新密码”窗体的部分代码如下所示。PrivateSubCommand1_C

lick()IfIsNull(new_pwd1)ThenMsgBox"请输入新密码",vbCritical,"提示"EndIfIfIsNull(new_pwd2)ThenMsgBox"请再次输入新密码",vbCritical,"提示

"EndIfIfnew_pwd1<>new_pwd2ThenMsgBox"两次输入不一致",vbCritical,"错误"new_pwd1.SetFocusnew_pwd1=""new_pwd2=""EndIfDimrsAsNewADODB.RecordsetDimstrAsStrin

gstr="select*from管理员where用户名='"&user&"'"Setrs=ExeSQL(str)IfNotrs.EOFThenrs("用户名")=userrs("密码")=new_pwd1rs.Updaters

.CloseSetrs=NothingMsgBox"您成功地修改了该用户!"ElseMsgBox"wrong"EndIfMe.Visible=FalseEndSub12.7.8“密码管理”窗体代码•运行该“进销存管理系统.accdb”数据库。第一步:启动Access

2007程序,打开“进销存管理系统.accdb”数据库。第三步:在【用户名】文本框中输入“sa”,在【密码】文本框中输入“1234”,系统弹出“切换面板”窗体,如下图所示。第二步:系统弹出“登录”窗体,如下图所示。12.7.8“密码管理”窗体代码•运行该“进销存管理系统.accdb”数据库。第四

步:单击切换面板中的第一项,进入“订单处理”模块,用户可以在该窗体中查看、添加和修改订单和查询信息,如下图所示。第五步:关闭该模块,单击切换面板的第二项,进入“产品入库”模块,用户可以在该模块中查看、添加和修改产品入库记录,还可

以进行入库信息的综合查询和打开库存报表,如下图所示。12.7.8“密码管理”窗体代码•运行该“进销存管理系统.accdb”数据库。第六步:单击【综合查询】按钮,进入到“进货资料查询”模块,如步骤11所示。第七步:单击【库存】按钮,可以打开“库存”报表

,如下图所示。第八步:返回到切换面板,单击切换面板的第三项,进入“发货确认”模块,如下图所示。12.7.8“密码管理”窗体代码•运行该“进销存管理系统.accdb”数据库。第九步:输入发货的具体信息,这些信息将会记录在“订单处理明细”表中,如下图所示。可以查看

到在“订单处理明细”表中增加了该记录,同时在“库存”表中的记录也相应地减少了,如下图所示。第十步:返回到切换面板,单击切换面板的第四项,进入“供应商资料管理”模块,如下图所示。12.7.8“密码管理”窗体代码•运行该“进销存管理系统.accdb

”数据库。它也能够完成基本的记录导航和操作,同时输入两个时间参数,可以进行销售查询,打开这段时间的销售情况,以销售报表形式给出结果,如下图所示。第十一步:返回到切换面板,单击切换面板的第四项,可以直接进入“进货资料查询”模块,如下图所示。12.7.8“

密码管理”窗体代码•运行该“进销存管理系统.accdb”数据库。第十二步:设置查询的条件,然后单击【查询】按钮,即可得到查询结果,如下图所示。第十三步:返回到“切换面板”窗体,单击“切换面板”窗体的第六项,进入“密码管理”模块,如下图所示。我们对密码进行操作,都要先输入原来的密码,假设我

们把原先用户名“admin”、密码为“admin”的用户密码修改成“1234”,单击【修改】按钮,弹出如下图所示的对话框。输入新密码,单击【确定】按钮即可完成修改。12.8实例总结•通过该例子,我们应该学会以下这些知识。–进销存系统的需求。–

学会窗体、报表和查询的制作,以及完成数据库应用程序开发。–利用MicrosoftAccess编写进销存系统。12.9答疑与技巧•关于最初的系统方案设计•关于表设计•字段格式和窗体控件关系12.9.1关于最初的系统方案设计•最初进行方案设计,看似对程序的设计没有什么直接的作用,

但实际上,这个设计方案是以后设计工作的指导文件。设计好明确的系统部分、模块,可以大大提高程序开发的效率。12.9.2关于表设计•表中存储了数据库中的数据,因此在设计好表以后,表的结构一般就不要随意更改了。因为一旦删除了某一字段,那么该字段中的数据也随之删除。这样,就可能造成意外的损失。•在改变

包含有大量数据的表的字段数据类型之前,要先通过拷贝或者导出到备份的Access数据库进行备份,以防不小心丢失了数据库中的数据时,便于数据的恢复。12.9.3字段格式和窗体控件关系•在表的【设计视图】中,若预先指定字段的格式、默认值和查阅显示

的控件类型,那么在后面创建窗体时,由字段创建的窗体控件会自动继承这些格式和默认值,将自动按照所指定的类型创建控件。这样,不但可以大大提高编程的效率,而且可以避免错误。12.10拓展与提高•数据库设计的规则•复制修改表12.10.1数据库设计的规则•在数据库

的详细设计过程中,应该注意的事项包括如下。–遵守数据库设计的三个范式。–选择合适的字段数据类型和字段大小。–建立好表关系以及参考完整性。–设置好有效性规则。–必须有详细的设计文档,对数据库进行清晰而详尽的描述。–

着手开发以后,尽量不要更改数据库的设计。12.10.2复制修改表•在表的设计过程中,为了提高设计效率,对于两个字段相同或者类似的表,用户完全可以复制上一个表得来,然后再对其进行相应的修改即可。

精品优选
精品优选
该用户很懒,什么也没有留下。
  • 文档 34925
  • 被下载 0
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?