使用VisualBasic和Access开发.docx
- 文档编号:13866923
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:14
- 大小:282.49KB
使用VisualBasic和Access开发.docx
《使用VisualBasic和Access开发.docx》由会员分享,可在线阅读,更多相关《使用VisualBasic和Access开发.docx(14页珍藏版)》请在冰点文库上搜索。
使用VisualBasic和Access开发
使用VisualBasic和Access开发
产品零件计划自动编制软件
沈阳第一机床厂总经理办公室董凌云
〖摘要〗本文阐述了在企业中,怎样使用VisualBasic和Access开发产品零件计划自动编制软件,对其中的关键点如数据结构、数据录入、循环汇总等进行了详细说明。
〖主题词〗VisualBasicAccess产品零件计划软件开发
使用VisualBasic和Access开发
产品零件计划自动编制软件
自20世纪90年代以来,计算机技术的广泛应用,极大地推动了社会的发展进步。
在企业中,随着各种基于计算机基础上的管理技术的不断深入,例如MRPII、ERP等,给企业发展带来了无穷的机遇和广阔的前景。
然而对于一些暂时还不具备实施大规模计算机管理条件的企业,完全可以有针对性地开发一些有利于提高效率、减少错误的小软件,以满足生产经营的需要。
任务背景
一般来说,企业下达到车间级别的生产计划是非常详细的(我厂称之为零件细计划),而对于专业化较强的企业来说这个计划就更加重要。
我厂的零件计划来自于对生产大计划的分解,即在每月下旬首先制定出下月的机床台份出产计划,然后将该大计划按照产品结构数据分类汇总成为零件数据,再根据零件工艺路线的不同将零件计划分解到各车间。
我厂使用两位数字的工艺代码来代表车间,例如“01”代表1#车间,“02”代表2#车间等,依此类推。
我厂在每月进行零件计划的分解时,广大计划员、统计员都要辛辛苦苦地忙上好几天,使用EXCEL电子表格软件对庞大的数据信息分类汇总,主要依靠手工操作,既繁杂又容易出错;而且一旦出现错误经常要等到耽误生产时才察觉出来,却为时已晚,造成了一定的损失。
针对上述情况,我们完全可以应用VisualBasic6.0开发工具、MicrosoftAccess和SQLServer数据库工具及SQL语言知识,自行开发一个产品零件计划自动编制的软件,让计算机来代替手工操作,既准确又快捷,何乐而不为?
开发工具
VisualBasic6.0是Microsoft公司出品的一个集应用程序开发、测试、查错等功能于一体的集成式开发环境,它是当前使用最广泛的开发工具之一,据说目前所有的职业开发人员中有超过50%的人正在使用VisualBasic语言。
VisvalBasic6.0是Microsoft公司最新推出的可视化编程语言,可视化编程是一种快捷、标准、高效的程序设计方法,它利用面向对象的编程方式,让程序员通过对象操作能设计出与Windows操作系统一致的界面。
VisualBasic6.0适合用于图形界面设计、数据库编程、WEB和多媒体开发等。
Access2000是Microsoft公司出品的Office2000软件系列中的一部分,作为一种小型数据库,在世界上应用相当广泛。
无论用户是要创建一个个人使用的独立的桌面数据库,还是部门或整个公司使用的数据库,在需要管理和共享数据时,Access都能为使用数据库提供便利。
Access2000可以很方便地在不同的平台和用户级上实现数据共享,能够与VisualBasic无缝集成,可以大大地提高工作效率。
Excel2000是Microsoft公司出品的Office2000软件系列中的相当具有创新特点的重要部分,一直受到广大用户的好评。
作为一种电子表格软件,Excel2000在各个领域都发挥了重要的作用,大家已经越来越离不开它。
我厂几乎全部的统计汇总工作都是使用该软件完成的。
数据结构
在进行数据库软件开发时,第一步也是最关键的一步便是数据库的搭建。
这里我主要建立了两个数据库,在每个数据库内放置若干数据表。
●基本信息数据库
车间信息表——车间代码、车间名称;
DAIMA
MINGCHENG
1#
40加工车间
3#
奇型件加工车间
4#
小件加工车间
5#
箱体加工车间
9#
轴杠加工车间
单位信息表——单位代码、单位名称;
DAIMA
DANWEI
10
毫米
11
厘米
12
分米
13
米
14
十米
15
百米
20
平方毫米
工艺信息表——车间代码、工艺代码、工艺内容;
CHEJIANDAIMA
GONGYIDAIMA
GONGYINEIRONG
1#
01
40加工部分
2#
02
40部装部分
3#
03
加工部分
3#
23
装配部分
4#
04
轴盘套加工部分
4#
24
零件煨弯部分
级别信息表——代码、名称,指零部件的层次级别,依次为:
系列→型号→规格→整机编号→部件、分部件→组件→分件、零件;
DAIMA
MINGCHENG
10
系列
20
型号
30
规格
40
整机编号
50
部件
51
分部件
60
组件
70
分件
71
零件
类型信息表——代码、名称,指零部件的所属类型,即整机、部件、专用件、标准件、外购件;
DAIMA
MINGCHENG
ZJ
整机
BJ
部件
ZYJ
专用件
BZJ
标准件
WGJ
外购件
●零件计划数据库
零件基础信息表——级别、件号、名称、路线;
JIBIE
JIANHAO
MINGCHENG
LUXIAN
71
373-01004L
支承螺钉
16.04.13.90
71
373-01005L
螺母
16.04.13.90
71
373-01006L
垫圈
16.04.13.90
71
373-02007L
挡板
18.13.06
71
373-02011L
帽
19.04.06
71
373-02012L
套
17.04.06
零件结构信息表——父项、子项、数量;
FUXIANG
ZIXIANG
SHULIANG
373-80002H
373-80016S1
1
373-80002H
373-80006S
1
373-94001B
373-94001H
1
373-94001H
373-94003S
2
CK6145/1000/Q02032-33
K45-A1001T
1
CK6145/1000/Q02032-33
K45-52092B
1
零件计划信息表——(准备下达生产大计划产量台份)件号、数量;
JIANHAO
SHULIANG
CK6145/650/Q02036
1
CK6145/650/Q02037
1
CK6145/1000/Q02032-33
2
CK6145/1000/Q02034
1
CK6154/650/Q02035
1
●汇总结果临时数据库
在该数据库中,按照车间代号名称设置了若干数据表。
零件计划初步统计的总表如下(数据结构为件号、数量,件号允许重复):
JIANHAO
SHULIANG
CK6145/650/Q02036
1
CK6145/650/Q02037
1
CK6145/1000/Q02032-33
2
CK6145/1000/Q02034
1
CK6154/650/Q02035
1
K45-01001B
1
对总表内的零件分类汇总后的数据表如下(数据结构为件号、名称、数量、路线):
JIANHAO
MINGCHENG
SHULIANG
LUXIAN
373-01004L
支承螺钉
55
16.04.13.90
373-01005L
螺母
55
16.04.13.90
373-01006L
垫圈
55
16.04.13.90
373-02007L
挡板
10
18.13.06
373-02011L
帽
5
19.04.06
对分类汇总后的零件数据表根据工艺路线的不同,提取出所应发放的车间代码。
下表为3#车间(代码为03)的最终零件计划汇总结果(数据结构为件号、名称、数量、路线),即为下发3#车间的零件计划。
JIANHAO
MINGCHENG
SHULIANG
LUXIAN
373-03047L
拉块
4
17.03.90
373-09006L1
管接头
2
17.03.13.90
373-09007L1
管接头
2
17.03.13.90
373-52012L
底板
5
18.03.13.90
373-68004L
钢带
3
73.03.90
在上述数据库和数据表中,最重要的就是按照“父项、子项、子项数量”模式搭建的零部件数据结构,该结构简单明晰地表达了组件与子件的关系,保证了后续汇总模块的顺利执行。
数据录入
在这项工作中,数据库的录入也是非常重要的。
在很多人眼中,数据的录入似乎是一件极为简单的事情,其实不然。
我们只能说“录入”是简单的,但“准备录入”却并不是一件容易的事情。
寻求更好、更方便、更准确的录入方法在这里具有举足轻重的作用。
为了提高效率,我采用Excel2000作为录入工具,因为我厂绝大部分计划统计人员对Excel2000都相当熟悉,录入数据时得心应手。
同时,还可以多使用一些技巧来提高录入速度和准确率。
例如,在录入零件结构信息表数据时,按照以往惯例,形成的历史数据格式如下:
父项
子项
数量
K45-07001B
S14-07302L
1
S14-07303L
1
K45-07004L
1
K45-07002B
K45-07001B
1
K45-07004L
1
K45-09001B
373-09006L1
1
K45-09001L
1
K45-09002L
1
K45-09002B
K45-09001H
1
373-09007L1
1
但是在形成标准数据格式时,必须把“父项”这一列完全填满,即形成如下格式:
父项
子项
数量
K45-07001B
S14-07003L
1
K45-07001B
S14-07010L
1
K45-07001B
S14-07302L
1
K45-07001B
S14-07303L
1
K45-07001B
K45-07004L
1
K45-07002B
K45-07001B
1
K45-09001B
373-09006L1
1
K45-09001B
K45-09001L
1
K45-09001B
K45-09002L
1
K45-09001B
K45-09001H
1
K45-09001B
373-09007L1
1
要形成上述格式,只靠人工方法不断地复制、拖动的工作量相当大、且容易出错,而为此编一段程序又不太值得;因此我利用Excel强大的公式功能,通过公式IF(A3="",B2,A3)轻松达到了目的。
在Excel2000中将数据录入完毕、经检查无误后,只需要使用拷贝、粘贴命令就可以将其导入Access数据库中,十分方便。
程序原理
该程序以Access2000作为后台数据库,以Excel2000作为数据整理录入工具,以VisualBasic6.0作为前台开发和界面设计工具进行开发设计。
简单的说就是在已知需编制计划的产品数量的条件下,根据其产品型号到结构数据表中循环查找其子项条目,并将子项数量与父项数量相乘,最终将结果加入数组,形成初步的汇总数据表。
当全部子项条目都循环完毕后,对初步的汇总数据表进行分类汇总,形成最终的汇总数据表;再从基础数据表中查询汇总数据表中对应件号的其他字段(级别、名称、路线等),并按照零件的工艺路线筛选出所归属各相关车间的零件计划,最终将零件计划下发到各相关车间。
在该程序中,最关键的一段当属于对产品零部件父项、子项的循环汇总,这部分的程序清单如下:
'打开零件计划数据库,读取内容
LblProgress.Caption="打开零件计划数据库,读取内容"
DimChanPinDBAsDatabase,rcs_JiHuaAsRecordset,rcs_JiChuAsRecordset,rcs_JieGouAsRecordset
SetChanPinDB=OpenDatabase(SourceDBname)
Setrcs_JiHua=ChanPinDB.OpenRecordset("JIHUA")
i=rcs_JiHua.RecordCount-1'初始数组上限,即计划条目数量(从0开始计算)
ReDimArrJianHao(i)
ReDimArrShuLiang(i)'重新定义数组上限
PrgHuiZong.Value=0.1*PrgMax
'读取计划条目加入数组及汇总数据表
LblProgress.Caption="读取计划条目加入数组及汇总数据表"
i=0
IfNot(rcs_JiHua.BOFAndrcs_JiHua.EOF)Then
rcs_JiHua.MoveFirst
DoUntilrcs_JiHua.EOF
ArrJianHao(i)=rcs_JiHua("JIANHAO")
ArrShuLiang(i)=rcs_JiHua("SHULIANG")
rcs_HuiZong.AddNew
rcs_HuiZong!
JIANHAO=rcs_JiHua("JIANHAO")
rcs_HuiZong!
SHULIANG=rcs_JiHua("SHULIANG")
rcs_HuiZong.Update
rcs_JiHua.MoveNext
i=i+1
Loop
EndIf
rcs_JiHua.Close
PrgHuiZong.Value=0.2*PrgMax
StartIndex=0
EndIndex=i-1
'循环查找子项条目,并将子项数量与父项数量相乘,结果加入数组及汇总数据表
LblProgress.Caption="循环查找子项条目"
DoWhileEndIndex>StartIndex
Forj=StartIndexToEndIndex
StrSqlCmd="select*fromJIEGOUwhereFUXIANG="+"'"+ArrJianHao(j)+"'"
Setrcs_JieGou=ChanPinDB.OpenRecordset(StrSqlCmd)
IfNot(rcs_JieGou.BOFAndrcs_JieGou.EOF)Then
rcs_JieGou.MoveLast
EndIf
x=rcs_JieGou.RecordCount
upper=UBound(ArrJianHao)
ReDimPreserveArrJianHao(x+upper)
ReDimPreserveArrShuLiang(x+upper)
x=0
IfNot(rcs_JieGou.BOFAndrcs_JieGou.EOF)Then
rcs_JieGou.MoveFirst
DoUntilrcs_JieGou.EOF
x=x+1
ArrJianHao(x+upper)=rcs_JieGou("ZIXIANG")
ArrShuLiang(x+upper)=rcs_JieGou("SHULIANG")*ArrShuLiang(j)
rcs_HuiZong.AddNew
rcs_HuiZong!
JIANHAO=rcs_JieGou("ZIXIANG")
rcs_HuiZong!
SHULIANG=rcs_JieGou("SHULIANG")*ArrShuLiang(j)
rcs_HuiZong.Update
rcs_JieGou.MoveNext
Loop
EndIf
rcs_JieGou.Close
Nextj
StartIndex=EndIndex
EndIndex=UBound(ArrJianHao)
Loop
rcs_HuiZong.Close
使用效果
该软件编制完成后开始针对局部产品试运行,在基础数据完备的情况下,工作效率显著提高,统计汇总错误率减少到零,反映速度大大增强,极大地解放了广大计划统计员的手工计算机操作工作,取得了非常好的效果。
在零件计划统计汇总的基础上,还可以制作产品的树形结构图,用于查找录入错误和研究产品结构非常方便。
参考资料:
[1]VisualBasic程序设计王汉新科学出版社
[2]中文VisualBasic6.0案例教程李勇平等北京希望电子出版社
[3]VisualBasic6.0数据库开发实例同志工作室人民邮电出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 VisualBasic Access 开发