[精选]Access应用管理进销存(PPT113页)5328

上传人:无*** 文档编号:246076330 上传时间:2024-10-12 格式:PPT 页数:114 大小:2.65MB
返回 下载 相关 举报
[精选]Access应用管理进销存(PPT113页)5328_第1页
第1页 / 共114页
[精选]Access应用管理进销存(PPT113页)5328_第2页
第2页 / 共114页
[精选]Access应用管理进销存(PPT113页)5328_第3页
第3页 / 共114页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第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”空白数据库。,第一步:打开Access 2007,单击【开始使用Microsoft Office Access】页中的【空白数据库】按钮,如下图所示。,第二步:系统出现如下图所示的窗口,选择合适的路径,输入数据库名称为“进销存系统.accdb”。,12.3.2 建立空数据库系统,建立一个“进销存管理系统.accdb”空白数据库。,第三步:单击【创建】按钮,完成该数据库的创建。系统自动建立了一个名为“表1”的数据表。,12.3.3 创建数据表,“管理员”表,“产品信息”表,字,段,名,数据类型,字段宽度,是否主键,用户名,文本,18,否,密码,文本,18,否,字,段,名,数据类型,字段宽度,是否主键,产品编号,数字,是,产品名称,文本,18,否,规格型号,文本,255,否,计量单位,文本,20,否,供应商编号,数字,9,否,产品类别,文本,18,否,12.3.3 创建数据表,“供应商”表,字,段,名,数据类型,字段宽度,是否主键,供应商编号,数字,9,是,供应商名称,文本,18,否,联系人姓名,文本,18,否,联系人职务,文本,18,否,业务电话,文本,20,否,电子邮件,文本,40,否,12.3.3 创建数据表,“客户”表,字,段,名,数据类型,字段宽度,是否主键,客户编号,数字,9,是,客户姓名,文本,18,否,客户地址,文本,255,否,联系电话,文本,20,否,字 段 名,数据类型,字段宽度,是否主键,电子邮件,文本,40,否,备注,文本,255,否,12.3.3 创建数据表,“订单”表,字,段,名,数据类型,字段宽度,是否主键,订单编号,数字,9,是,客户编号,数字,9,否,产品编号,数字,9,否,供应商编号,数字,9,否,销售单价,货币,否,订购数量,数字,10,否,订单金额,货币,否,预定时间,日期/时间,否,订单时间,日期/时间,否,备注,文本,20,否,12.3.3 创建数据表,“订单处理明细”表,字,段,名,数据类型,字段宽度,是否主键,订单编号,数字,9,是,客户编号,数字,9,否,产品编号,数字,9,供应商编号,数字,9,否,预定时间,日期/时间,否,发货时间,日期/时间,销售单价,货币,否,订购数量,数字,10,否,订单金额,货币,否,付款方式,文本,8,否,付款时间,日期/时间,否,发货地址,文本,255,否,发货人,文本,18,否,状态,文本,40,否,12.3.3 创建数据表,“入库记录”表,字,段,名,数据类型,字段宽度,是否主键,入库编号,数字,20,是,业务类别,数字,2,否,产品编号,数字,9,否,供应商编号,数字,9,否,入库时间,日期/时间,否,入库单价,货币,否,入库数量,数字,10,否,入库金额,货币,否,经办人,文本,18,否,12.3.3 创建数据表,“出库记录”表,字,段,名,数据类型,字段宽度,是否主键,出库编号,数字,20,是,业务类别,数字,2,否,产品编号,数字,9,否,供应商编号,数字,9,否,出库时间,日期/时间,否,出库单价,货币,否,出库数量,数字,10,否,出库金额,货币,否,经办人,文本,18,否,12.3.3 创建数据表,“业务类别”表,字,段,名,数据类型,字段宽度,是否主键,业务类别,数字,9,是,业务名称,文本,20,否,收发标志,是/否,否,“库存”表,字,段,名,数据类型,字段宽度,是否主键,产品编号,数字,9,是,供应商编号,数字,9,是,库存量,数字,10,否,12.3.4 定义数据表之间的关系,建立“产品信息”表和“出库记录”表之间的表关系。,第一步:启动Access 2007,打开“进销存管理系统.accdb”。,第二步:切换到【数据库工具】选项卡,单击【关系】按钮,如下图所示。,第三步:单击右键,在弹出的快捷菜单中选择【显示表】命令,按住Ctrl键,选择所有的表,然后单击【添加】按钮,把所有的表都添加上去,如下图所示。,12.3.4 定义数据表之间的关系,建立“产品信息”表和“出库记录”表之间的表关系。,第四步:设置表的参照完整性。我们以“产品信息”表中的“产品编号”字段与“出库记录”表中的“产品编号”字段为例。按下鼠标左键拖动“产品信息”表中的“产品编号”字段到“出库记录”表中的“产品编号”字段上,释放鼠标左键,系统弹出【编辑关系】对话框,如下图所示。,第五步:选中【实施参照完整性】复选框,这样就建立了表之间的一对多关系,如下图所示。,12.3.4 定义数据表之间的关系,按照同样的步骤,可以建立起其他表之间的关系。最终建立了下面的关系图。,我们设计的数据库表中,各种表关系如下表所示。,表,名,字段名称,相关表名,字段名称,供应商,供应商编号,产品信息,供应商编号,供应商,供应商编号,入库记录,供应商编号,供应商,供应商编号,出库记录,供应商编号,供应商,供应商编号,库存,供应商编号,供应商,供应商编号,订单,供应商编号,供应商,供应商编号,订单处理明细,供应商编号,产品信息,产品编号,订单,产品编号,产品信息,产品编号,订单处理明细,产品编号,产品信息,产品编号,入库记录,产品编号,产品信息,产品编号,出库记录,产品编号,产品信息,产品编号,库存,产品编号,业务类别,业务类别,入库记录,业务类别,业务类别,业务类别,出库记录,业务类别,12.4 窗体的实现,“登录”窗体,“切换面板”窗体,“订单处理”窗体,“发货确认”窗体,“产品进库”窗体,“供应商查询编辑”窗体,“进货资料查询”窗体,“密码管理”窗体,12.4.1 “登录”窗体,运用“模式对话框”窗体,设计本系统的“登录”窗体。,第一步:启动Access 2007,打开“进销存管理系统.accdb”数据库。,第二步:切换到【创建】选项卡,选择【窗体】组中【其他窗体】下拉菜单中的【模式对话框】选项,如下图所示。,第三步:出现一张空白窗体,已有两个按钮:【确定】和【取消】,如下图所示。,12.4.1 “登录”窗体,运用“模式对话框”窗体,设计本系统的“登录”窗体。,控件名称,属,性,属,性,值,Label1,标题,进销存登录,Label2,标题,用户名:,Label3,标题,密码:,Txt_name,txtpwd,输入掩码,密码,Btn_ok,Btn_cancel,第四步:调整窗体布局,在窗体上添加几个控件,属性值设置如下表所示。,第五步:设置主体背景颜色。在主体区域中右击,在弹出的快捷菜单中选择【填充/背景色】选项,弹出如下图所示的菜单。,12.4.1 “登录”窗体,运用“模式对话框”窗体,设计本系统的“登录”窗体。,第六步:调整窗体布局,完成后的“登录”窗体如下图所示。,12.4.2 “切换面板”窗体,运用窗体的【设计视图】,设计本系统的“切换面板”窗体。,第一步:启动Access 2007,打开“进销存管理系统.accdb”数据库。,第二步:切换到【创建】选项卡,单击【窗体】组中的【窗体设计】按钮,出现一张空白窗体。,第三步:调整窗体布局。添加一个“矩形”控件,“背景”属性设为“#9DBB61”。添加标题控件,并将标题设为“进销存系统示例”。添加一个徽标控件,图片为“罗斯文.png”,创建后的效果如下图所示。,12.4.2 “切换面板”窗体,运用窗体的【设计视图】,设计本系统的“切换面板”窗体。,控件名称,属,性,属,性,值,Image2,图片,儿童.jpg,Label1,标题,进销存系统示例,Label2,标题,订单处理,Label3,标题,产品入库,Label4,标题,发货确认,Label5,标题,供应商资料查询,Label6,标题,进货资料查询,Label7,标题,密码管理,Option1,标题,Option2,标题,Option3,标题,Option4,标题,Option5,标题,Option6,标题,Btn_retrun,标题,退出系统,第四步:利用命令按钮控件和标签控件,为窗体添加几个按钮和标签,来处理管理员的操作。各个控件的属性设置如下表所示。,第五步:这样就完成了“切换面板”窗体的创建,完成后的结果如下图所示。,12.4.3 “订单处理”窗体,运用窗体向导,设计本系统的“订单处理”窗体。,第一步:启动Access 2007,打开“进销存管理系统.accdb”数据库。,第二步:切换到【创建】选项卡,选择【窗体】组中【其他窗体】下拉菜单中的【窗体向导】选项。,第三步:按照前面章节介绍的步骤,在【表/查询】下拉列表框中选择“表:订单”,将【可选字段】列表框中的所有字段加入右面【选定字段】列表框中,然后依次确定即可。系统自动生成的窗体如下图所示。,12.4.3 “订单处理”窗体,运用窗体向导,设计本系统的“订单处理”窗体。,第四步:若要加上按钮控件,则切换到【窗体设计工具】选项卡,单击【使用控件向导】按钮,则所有添加控件都会在向导模式下进行。,第五步:单击【命令控件】按钮,出现如下图所示的【命令按钮向导】对话框,我们以“保存记录”为例加以说明。,12.4.3 “订单处理”窗体,运用窗体向导,设计本系统的“订单处理”窗体。,第六步:单击【下一步】按钮,为按钮添加上合适的图标或者文字,如下图所示。,第七步:单击【下一步】按钮,在弹出的指定按钮名称的对话框中输入该按钮的名称,如下图所示。,12.4.3 “订单处理”窗体,运用窗体向导,设计本系统的“订单处理”窗体。,第八步:修改如下表所示主要控件的属性,设置窗体的页眉和页脚。,第九步:这样我们就完成了“订单处理”窗体的创建过程,完成后的界面如下图所示。,控件名称,属,性,属,性,值,Image1,图片,罗斯文.png,Text1,控件来源,=Replace(订单 #|,|, Nz(订单编号,(新),Btn_add,背景样式,透明,Btn_save,背景样式,透明,Btn_del,背景样式,透明,Btn_query,背景样式,透明,Btn_return,背景样式,透明,Label7,背景样式,透明,Option1option6,标题,Btn_retrun,标题,退出系统,12.4.4 “发货确认”窗体,运用窗体的【设计视图】,设计本系统的“发货确认”窗体。,第一步:单击右键,在弹出的快捷菜单中选择【窗体页眉/页脚】选项,进行窗体页眉设置。步骤和前面一样,这里不再赘述。,第二步:在窗体上添加控件,属性见下表所示。,控件名称,属,性,属,性,值,Label2,标题,请查看下面的订单信息:,Txt_no,所有属性,默认,Label_type,标题,支付方式,Combo1,行来源,“支票”;“信用卡”;“现金”,Label_date,标题,付款日期,Txt_paydate,所有属性,默认,Label_address,标题,送货地址,Txt_address,所有属性,默认,Label_name,标题,送货人,Txt_name,所有属性,默认,Label_date2,标题,送货日期,Txt_date,所有属性,默认,Btn_ok,标题,确认,Btn_cancel,标题,取消,Btn_return,标题,返回,第三步:完成后的“发货确认”窗体如下图所示。,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 “供应商查询编辑”窗体,运用窗体的窗体向导,设计本系统的“供应商查询编辑”窗体。,第三步:我们还要在这个窗体上加上“记录导航”按钮和“记录操作”按钮,注意在“使用控件向导”下添加。,第四步:还添加了另外几个控件,属性设置见下表所示。,第五步:调整窗体布局,完成后的窗体如下图所示。,控件名称,属,性,属,性,值,Image1,图片,罗斯文.png,Label1,标题,供应商管理查询,Label2,标题,起始日期,Txt_date1,Label3,标题,至,Label4,标题,截至日期,Txt_date2,Btn_query,标题,查询,Btn_return,标题,返回,12.4.7 “进货资料查询”窗体,设计本系统的“供应商查询编辑”窗体,在这里我们将用子窗口的方式来显示查询结果。,第一步:切换到【创建】选项卡,单击【窗体】组中的【窗体设计】按钮。,第二步:添加若干控件,并设置它们的属性值,具体情况如下表所示。,控件名称,属,性,属,性,值,Label1,标题,进货资料查询,Label2,标题,请选择查询的条件:,Label_name,标题,产品名称,txt_wuzi,标题,付款信,Label_company,标题,公司名称,Combo1,行来源,SELECT 供应商名称 FROM 供应商 ORDER BY 供应商名称;,Label_from,标题,日期范围,txt_date1,所有属性,Labet_to,标题,至,txt_date2,所有属性,Label_rule,标题,格式为yy-mm-dd,Label_person,标题,经办人,进货资料查询子窗体,源对象,查询.进货资料查询,Txt_person,所有属性,默认,Btn_query,标题,查询,Btn_cancel,标题,清除,Btn_return,标题,返回,12.4.7 “进货资料查询”窗体,设计本系统的“供应商查询编辑”窗体,在这里我们将用子窗口的方式来显示查询结果。,第五步:调整窗体布局,完成了“进货资料查询”窗体的创建,最终效果如下图所示。,12.4.8 “密码管理”窗体,“密码管理”窗体控件如下表所示。,控件名称,属性,属性值,Btn_add,标题,增加,Btn_xiugai,标题,修改,Btn_del,标题,删除,Btn_return,标题,返回,Label_name,标题,用户名:,Label_pwd,标题,密码:,Label_pwd2,标题,确认密码:,Txt_name,Txt_pwd1,Txt_pwd2,完成后的“密码管理”窗体如下图所示。,12.4.8 “密码管理”窗体,“新密码”窗体控件如下表所示。,完成后的“新密码”窗体如下图所示。,控件名称,属,性,属,性,值,Label_pwd1,标题,请输入新密码:,Label_pwd2,标题,请再次输入:,New_pwd1,New_pwd2,Commmand1,标题,确定,Command0,标题,取消,12.5 查询的实现,“订单处理查询”的设计,“供应商销售查询”的设计,“进货资料查询”的设计,“库存查询”的设计,12.5.1 “订单处理查询”的设计,使用“查询向导”来创建“订单处理查询”,第一步:切换到【创建】选项卡,然后单击【其他】组中的【查询设计】按钮,如下图所示。,第二步:系统弹出如下图所示的【显示表】对话框,提示我们加入所需要的表,如下图所示。,12.5.1 “订单处理查询”的设计,使用“查询向导”来创建“订单处理查询”,第三步:选择“订单表明细”表,单击【添加】按钮,将该表添加到查询的【设计视图】中。,第四步:依次选择该表中的全部字段,将其添加到查询的设计网格中,如下图所示。,第五步:为字段添加查询条件。右击“订单编号”字段查询网格的【条件】行,在弹出的快捷菜单中选择【生成器】选项,如下图所示。,12.5.1 “订单处理查询”的设计,使用“查询向导”来创建“订单处理查询”,第六步:系统弹出【表达式生成器】对话框。在【表达式生成器】对话框中,我们为查询的字段设置条件,将它和窗体上的控件值联系到一起,如下图所示。,第七步:保存该查询为“订单处理查询”。这样,我们就完成了“订单处理查询”的创建。,输入的查询条件如上图所示,这样把查询中的“订单编号”和窗体上的“订单编号”关联起来。,12.5.2 “供应商销售查询”的设计,设计“供应商销售查询”,第一步:切换到【创建】选项卡,然后单击【其他】组中的【查询设计】按钮。,第二步:弹出的【显示表】对话框中,依次把“供应商”表、“订单”表和“产品信息”表添加到查询的【设计视图】中,然后关闭该对话框,如下图所示。,第三步:选择要进行查询的字段。双击选择的字段,即可将字段加入到下面的查询设计网格中,最终结果如下图所示。,12.5.2 “供应商销售查询”的设计,设计“供应商销售查询”,第四步:为字段添加查询条件。右击“供应商编号”字段查询网格的【条件】行,在弹出的快捷菜单中选择【生成器】选项,如下图所示。,第五步:在弹出的【表达式生成器】对话框中,我们为“供应商编号”字段设置查询条件,如下图所示。,12.5.2 “供应商销售查询”的设计,设计“供应商销售查询”,第六步:按照同样的步骤,设置字段的查询条件。整个查询的条件设置如下表所示。,字 段,表,排序,条 件,供应商编号,供应商,无,Forms!供应商!供应商编号,供应商名称,供应商,无,产品编号,产品信息,升序,产品名称,产品信息,无,产品类别,产品信息,无,订购数量,订单,无,预订时间,订单,无,Between Forms! 供应商!txt_date1 And Forms! 供应商! txt_date2,第七步:保存该查询为“供应商销售查询”,这样我们就完成了该查询的创建。,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 公用模块,建立公用模块,第一步:我们首先要新建一个“模块”。单击【数据库工具】选项卡下的Visual Basic按钮,进入VBA编辑器,如下图所示。,第二步:选择【插入】菜单,选择【模块】命令,即可增加一个新模块,如下图所示。,12.7.1 公用模块,建立公用模块,第三步:新建模块以后,VBA编辑器界面如下图所示。,第四步:我们在新增加的模块里,增加如下代码。,Option Compare Database,Option Explicit,txtSQL为执行查询时所需要的SQL语句,Public Function ExeSQL(ByVal txtSQL As String) As ADODB.Recordset,On Error GoTo ExeSQL_Error 错误处理,Dim rs As New ADODB.Recordset,rs.Open txtSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic,返回记录集对象,Set ExeSQL = rs 返回值为ExeSQL,ExeSQL_Exit:,Set rs = Nothing,Exit Function,ExeSQL_Error:,Dim msgstring As String,msgstring = 查询错误 & Err.Description,MsgBox msgstring, vbCritical,Resume ExeSQL_Exit,End Function,12.7.1 公用模块,为了正确地使用ADO方式来对数据库查询,我们要在VBA编辑器下加入两个引用。选择【工具】|【引用】命令,加入 创建表有多种不同的方法,用户可以根据自己的习惯和工作的难易程度选择合适的创建方法。直接输入、表模板、表的【设计视图】是最常用的创建表的方法。,Microsoft ActiveX Data Objects 2.8 Library和Microsoft ActiveX Data Objects Recordset 2.8 Library,如下图所示。,12.7.2 “登录”窗体代码,已知我们设计的“登录”窗体如下图所示。,12.7.2 “登录”窗体代码,编写“登录”窗体代码,第一步:打开“登录”窗体的【设计视图】,右击,在弹出的快捷菜单中选择【属性表】选项,弹出【属性表】窗格,如下图所示。,第二步:在【属性表】窗格的【所选内容的类型:窗体】下拉列表框中选择“窗体”选项。切换到【数据】选项卡,把【记录源】属性设置为“管理员”表。,第三步:单击【确定】按钮,并将【属性表】切换到【事件】选项卡,在【单击】属性的下拉列表框中选择【事件过程】选项,如下图所示。,12.7.2 “登录”窗体代码,编写“登录”窗体代码,第四步:单击右边的省略号按钮,进入VBA编辑器,添加“确定”按钮的代码,如下所示。,Option Compare Database,Option Explicit,Dim mrc As ADODB.Recordset,Dim txtSQL As String,Dim i As Integer 记录错误次数,确定按钮的代吗,Private Sub btn_ok_Click(),On Error GoTo Err_btn_ok_Click 错误处理,判断用户名是否为空,If IsNull(txt_name) Then,MsgBox 请输入用户名!, vbCritical, 提示,txt_name.SetFocus,Else,txtSQL = SELECT * from 管理员 where 用户名= & txt_name & ,Set mrc = ExeSQL(txtSQL),If mrc.EOF Then,MsgBox 没有此用户名称!, vbCritical, 提示,Else,If (mrc(1) = Txtpwd) Then,mrc.Close,Set mrc = Nothing,Me.Visible = False,打开切换面板,DoCmd.OpenForm 切换面板,Else,i = i + 1,If (i 0 Then,rs.Update,Else,MsgBox 删除记录出错, vbCritical,End If,End Ifrs.Close,Set rs = Nothing,End Sub,删除记录后,要更新库存数量,Private Sub btn_del_Click(),Dim rs As New ADODB.Recordset,Dim str_temp As String,str_temp = select * from 库存 Where 产品编号 = & 产品编号 & ,rs.Open str_temp, CurrentProject.Connection, adOpenDynamic, adLockOptimistic,If Not IsNull(rs) Then,rs(库存量) = rs(库存量) - 入库数量,rs.Update,End If,rs.Close,Set rs = Nothing,DoCmd.RunCommand acCmdDeleteRecord,End Sub,Private Sub btn_query_Click(),DoCmd.OpenForm 进货资料查询,Me.Visible = False,End Sub,Private Sub btn_return_Click(),Me.Visible = False,End Sub,12.7.4 “产品进库”窗体代码,添加完事件过程以后的【代码】窗口如下图所示。,12.7.5 “发货确认”窗体代码,已知我们设计的“发货确认”窗体如下图所示。,12.7.5 “发货确认”窗体代码,为“发货确认”窗体添加事件过程。,第一步:打开“发货确认”窗体的【设计视图】,右击“确认”按钮,在弹出的快捷菜单中选择【事件生成器】选项,在弹出的【选择生成器】对话框中选择【代码生成器】选项,单击【确定】按钮,打开VBA程序编辑器,输入“确认”按钮代码。,第二步:重复步骤1,对“返回”按钮关联“单击事件”过程。,相关代码如下。,Option Compare Database,确认按钮代码,Private Sub brn_ok_Click(),On Error GoTo Err_btn_ok_Click,用这个数组str(10)来保存订单记录中的数据,Dim str(10) As String,Dim mrc As New ADODB.Recordset,If IsNull(txt_no) Then,MsgBox 请输入要确认的订单编号!, vbCritical, 提示,txt_no.SetFocus,End If,If IsNull(Combo1) Then,MsgBox 请输入支付方式!, vbCritical, 提示,Combo1.SetFocus,Combo1.Dropdown,End If,12.7.5 “发货确认”窗体代码,If IsNull(txt_paydate) Then,MsgBox 请输入支付日期!, vbCritical, 提示,txt_paydate.SetFocus,End If,If IsNull(txt_address) Then,MsgBox 请输入送货地址!, vbCritical, 提示,txt_address.SetFocus,End If,If IsNull(txt_name) Then,MsgBox 请输入送货人!, vbCritical, 提示,txt_name.SetFocus,End If,If IsNull(txt_date) Then,MsgBox 请输入送货日期!, vbCritical, 提示,txt_date.SetFocus,End If,Dim str_temp As String,订单编号是整形,不需要单引号,str_temp = select * from 订单 where 订单编号= & txt_no & ,Set mrc = ExeSQL(str_temp),If mrc.EOF Then,MsgBox 没有该订单!, 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.Close,Set mrc = Nothing,End If,Dim rs As New ADODB.Recordset,rs.Open 订单处理明细, CurrentProject.Connection, adOpenDynamic, adLockOptimistic,rs.AddNew,rs(订单编号) = str(0),rs(客户编号) = str(1),rs(产品编号) = str(2),rs(供应商编号) = str(3),rs(预定时间) = str(7),rs(发货时间) = txt_date,rs(销售单价) = str(4),rs(订购数量) = str(5),rs(订单金额) = str(6),rs(付款方式) = Combo1,rs(付款时间) = txt_paydate,rs(发货地址) = txt_address,rs(发货人) = txt_name,rs(状态) = 已处理,rs.Update,rs.Close,Set rs = Nothing,MsgBox 成功添加了该信息!,12.7.5 “发货确认”窗体代码,更新库存表中的数量,Dim rs2 As New ADODB.Recordset,查找库存表中的记录,str_temp = select * from 库存 Where 产品编号 = & str(2) & ,rs2.Open str_temp, CurrentProject.Connection, adOpenDynamic, adLockOptimistic,If Not rs2.EOF Then,rs2(库存量) = rs2(库存量) - str(5),rs2.Update,End If,rs2.Close,Set rs2 = Nothing,MsgBox 成功更新了库存!,错误处理,Exit_btn_ok_Click:,Exit Sub,Err_btn_ok_Click:,Exit Sub,Resume Exit_btn_ok_Click,End Sub,Private Sub btn_cancel_Click(),Dim ctl As Control,For Each ctl In Me.Controls,Select Case ctl.ControlType,Case acTextBox,If ctl.Locked = False Then ctl.Value = Null,Case acComboBox,ctl.Value = Null,End Select,Next,Me.txt_no.SetFocus,End Sub,Private Sub btn_return_Click(),Me.Visible = False,DoCmd.OpenForm 切换面板, acNormal,End Sub,添加完代码后的【代码】窗体如下所示。,12.7.6 “供应商”窗体代码,已知我们设计的“供应商”窗体如下图所示。,12.7.6 “供应商”窗体代码,窗体
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!