怎样用EXCEL开发管理信息系统.docx
《怎样用EXCEL开发管理信息系统.docx》由会员分享,可在线阅读,更多相关《怎样用EXCEL开发管理信息系统.docx(49页珍藏版)》请在冰豆网上搜索。
![怎样用EXCEL开发管理信息系统.docx](https://file1.bdocx.com/fileroot1/2023-1/2/7ebaf3f0-5d13-4f1a-9845-e1ae6c899185/7ebaf3f0-5d13-4f1a-9845-e1ae6c8991851.gif)
怎样用EXCEL开发管理信息系统
LEKIBMstandardizationoffice【IBM5AB-LEKIBMK08-LEKIBM2C】
怎样用EXCEL开发管理信息系统
用EXCEL开发管理信息系统
摘要:
Excel97是Windows95环境下的一种电子表格软件,可向用户提供史无前例的超强功能和易用性,内嵌有一种VisualBasicforApplication(简称VBA)超级宏语言,读者在熟练应用Excel的基础上,可按用户的需求用VBA建立适用的信息系统。
关键词:
EXCEL97VBA管理信息系统(MIS)
目前国内管理信息系统(MIS)开发研制一般采用人们熟悉的dBaseX、Foxbase或Foxpro等,本文介绍了如何用Excel开发MIS。
一般来说,一套MIS主要包括信息输入、信息处理、信息输出三大组成部分,用Excel处理这些部分均显得游刃有余。
Excel是Windows环境下的一种电子表格软件,可向用户提供史无前例的超强功能和易用性。
它同时具有电子数据表、图表和数据库的功能,具有极强的分析性能、报表制作工具和丰富的统计图表。
在本文笔者用中文Excel97forWindows开发了水电管理系统、销售管理系统、试卷分析系统。
充分感受到其强大功能和方便性。
下面详细阐述水电管理系统、销售管理系统、试卷分析系统的开发过程。
应用程序一:
水电计价系统
水电管理是每一个单位每月都要进行的工作。
下面我们以保定农校水电计价系统为例讲解VBA在水电管理中的应用。
1、水电计价系统的功能
本程序具有如下功能:
自动计算功能:
可完成各户水费、电费、合计的计算。
自动汇总功能:
自动汇总全校教职工楼的用电量、用水量及分类汇总。
查询功能:
可查询各户的电表数、水表数、电费数、水费数。
报表的打印输出功能。
系统保护功能:
具有口令保护、工作表保护以防非法用户进入和修改。
2、程序设计过程
(1)程序总体设计()
(2)界面设计
水电计价系统主界面如图2所示。
()
主界面是以EXCEL工作表作为输入输出界面。
具体设计如下:
选定一个工作表并命名为“主界面”。
选定单元格区域,把区域颜色设置成你喜欢的颜色。
放置命令按钮,并给按钮指定宏。
分割区域并冻结,锁定界面使之不能滚动。
工作表加密保护使用户不能修改。
记录单界面如()所示。
具体设计过程如下:
选定一个工作表并命名为“记录单”。
制表(如上图所示)。
选定年、月、水表数、电表数空白单元格区域,取消锁定。
放置命令按钮,并给按钮指定宏。
工作表保护使用户不能修改。
主报表如(、)所示。
具体设计过程如下:
选定一个工作表并命名为“主报表”。
制表(如上图所示)。
纵向冻结A、B两列,横向冻结1-5行。
放置命令按钮,并给按钮指定宏。
输入公式:
计算上次表底、本月查表记录、水电用量、水、电费、水电费合计的校内、校外合计、楼房合计、平房合计。
在C338单元格输入下面公式,拖动填充柄复制公式至L338。
=SUMIF($M$6:
$M$331,"=l校内",C6:
C331)+SUMIF($M$6:
$M$331,"=p校内",C6:
C331)
在C339单元格输入下面公式,拖动填充柄复制公式至L339。
=SUMIF($M$6:
$M$331,"=l校外",C6:
C331)+SUMIF($M$6:
$M$331,"=p校外",C6:
C331)
在C340单元格输入下面公式,拖动填充柄复制公式至L340。
=SUMIF($M$6:
$M$331,"=l校外",C6:
C331)+SUMIF($M$6:
$M$331,"=l校内",C6:
C331)
在C341单元格输入下面公式,拖动填充柄复制公式至L341。
=SUMIF($M$6:
$M$331,"=p校外",C6:
C331)+SUMIF($M$6:
$M$331,"=p校内",C6:
C331)
工作表保护使用户不能修改。
查表档案界面如(下)所示:
具体设计过程如下:
选定一个工作表并命名为“档案”。
制表(如所示)。
纵向冻结A、B两列,横向冻结1-3行。
放置命令按钮,并给按钮指定宏。
工作表保护使用户不能修改。
查询档案如(下)所示:
具体设计过程如下:
选定一个工作表并命名为“查询”。
制表(如所示)。
纵向冻结A列,横向冻结1-3行。
放置命令按钮,并给按钮指定宏。
工作表保护使用户不能修改。
(3)、水电计价系统的VBA代码及说明
DimsAsVariant
DimyAsVariant
DimuAsVariant‘模块级变量声明
Subshuru()
指定给主界面输入按钮
s=Worksheets("主界面").Range("v1").Value‘获取密码
Fory2=1To2
x=InputBox("请输入密码:
","保定农校水电计价系统")
Ifx=sThen
Worksheets("主界面").Activate
("按钮2").Select
="vbb"
("按钮3").Select
="ibda"
'("按钮5").Select
'="退出"
("按钮4").Select
="报表查询"
Worksheets("记录单").Activate
ExitSub
ElseIfx=""Then
MsgBox"请输入密码"
Else
ExitSub
EndIf
Nexty2
EndSub‘以上是根据密码正确与否选择执行代码段
Sub返回1()‘指定给返回按钮
Worksheets("主界面").Activate
EndSub
Sub存档()
指定给记录单上的存档按钮
thecode=vbYesNo+vbDefaultButton2+vbExclamation+vbapplicationmodel
'MsgBox"请对输入进行检查,是否正确?
",thecode
thereply=MsgBox(prompt:
="请对输入进行检查,是否正确?
",Buttons:
=thecode)
SelectCasethereply
CasevbYes
m=Worksheets("记录单").Range("c5")
n=Worksheets("记录单").Range("d5")
Ifm<>""Andn<>""Then
Worksheets("记录单").Range("c5:
d330").Select
ElseIfm<>""Andn=""Then
Worksheets("记录单").Range("c5:
c330").Select
ElseIfm=""Andn<>""Then
Worksheets("记录单").Range("d5:
d330").Select
ElseIfm=""Andn=""Then
ExitSub
Else
EndIf
Worksheets("报表").Activate
Ifm<>""Andn<>""Then
'Worksheets("报表").Activate
Worksheets("报表").Range("e6").Select
ElseIfm<>""Andn=""Then
Worksheets("报表").Activate
Worksheets("报表").Range("e6").Select
ElseIfm=""Andn<>""Then
Worksheets("报表").Activate
Worksheets("报表").Range("f6").Select
Else
EndIf
Worksheets("档案").Activate
y1=Worksheets("记录单").Range("c2").Value
x=0
DoUntilz=y1
x=x+1
z=Worksheets("档案").Cells(2,x).Value
Loop
Ifm<>""Andn<>""Then
Worksheets("档案").Cells(4,x).Select
ElseIfm=""Andn<>""Then
Worksheets("档案").Cells(4,x+1).Select
ElseIfm<>""Andn=""Then
Worksheets("档案").Cells(4,x).Select
Else
EndIf
Worksheets("主界面").Activate
CasevbNo
EndSelect
ExitSub
EndSub‘以上代码是把录入数据存入主报表和查表档案
Sub返回2()‘指定给主报表上的返回主界面按钮
Worksheets("主界面").Activate
EndSub
Sub取电表底()‘指定给主报表上的取电表底按钮
y=InputBox("请输入电表底(y0,1,2...12):
","保定农校水电计价系统")
Ify="y0"Then
Worksheets("档案").Activate
Range("c4:
c329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="1"Then
Worksheets("档案").Activate
Range("e4:
e329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="2"Then
Worksheets("档案").Activate
Range("g4:
g329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="3"Then
Worksheets("档案").Activate
Range("i4:
i329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="4"Then
Worksheets("档案").Activate
Range("k4:
k329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="5"Then
Worksheets("档案").Activate
Range("m4:
m329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="6"Then
Worksheets("档案").Activate
Range("o4:
o329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="7"Then
Worksheets("档案").Activate
Range("q4:
q329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="8"Then
Worksheets("档案").Activate
Range("s4:
s329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="9"Then
Worksheets("档案").Activate
Range("u4:
u329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="10"Then
Worksheets("档案").Activate
Range("w4:
w329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="11"Then
Worksheets("档案").Activate
Range("y4:
y329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy="12"Then
Worksheets("档案").Activate
Range("aa4:
aa329").Select
Worksheets("报表").Activate
Range("c6").Select
ElseIfy=""Then
ExitSub
Else
EndIf
WithApplication
.Calculation=xlAutomatic
.MaxChange=.001
EndWith
=False
EndSub‘以上代码是使用选择语句从查表档案中取电表底
Sub取水表底()‘指定给主报表上的取电表底按钮
u=InputBox("请输入水表底(y0,1,2...12):
","保定农校水电计价系统")
Ifu="y0"Then
Worksheets("档案").Activate
Range("d4:
d329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="1"Then
Worksheets("档案").Activate
Range("f4:
f329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="2"Then
Worksheets("档案").Activate
Range("h4:
h329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="3"Then
Worksheets("档案").Activate
Range("j4:
j329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="4"Then
Worksheets("档案").Activate
Range("l4:
l329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="5"Then
Worksheets("档案").Activate
Range("n4:
n329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="6"Then
Worksheets("档案").Activate
Range("p4:
p329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="7"Then
Worksheets("档案").Activate
Range("r4:
r329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="8"Then
Worksheets("档案").Activate
Range("t4:
t329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="9"Then
Worksheets("档案").Activate
Range("v4:
v329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="10"Then
Worksheets("档案").Activate
Range("x4:
x329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="11"Then
Worksheets("档案").Activate
Range("z4:
z329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu="12"Then
Worksheets("档案").Activate
Range("ab4:
ab329").Select
Worksheets("报表").Activate
Range("d6").Select
ElseIfu=""Then
ExitSub
Else
EndIf
WithApplication
.Calculation=xlAutomatic
.MaxChange=.001
EndWith
=False
EndSub‘以上代码是使用选择语句从查表档案中取水表底
Subbsy()‘由报表存档过程调用
Worksheets("主界面").Activate
x=3
DoWhileNot(IsEmpty(Worksheets("主界面").Cells(11,x).Value))
x=x+1
Loop
Worksheets("主界面").Cells(11,x).Value=Worksheets("记录单").Range("c2")
Worksheets("主界面").Cells(11,x+1).Value="月"
Worksheets("主界面").Cells(12,x).Value=u
Worksheets("主界面").Cells(13,x).Value=y
Worksheets("主界面").Cells(12,x+1).Value="月"
Worksheets("主界面").Cells(13,x+1).Value="月"
Worksheets("报表").Activate
Range("c3:
f5").Select
Range("c334:
f336").Select
Range("a1").Select
=6
EndSub‘以上代码是把报表月份和表底月份放入主界面上的表格里
Sub返回3()指定给返回主界面按钮
Worksheets("主界面").Activate
EndSub
Sub打印设置()‘指定给主界面上的打印设置按钮
With
.PrintTitleRows="$1:
$5"
.PrintTitleColumns=""
EndWith
=""
With
.LeftHeader=""
.CenterHeader="水电计价系统"
.RightHeader="第&P页"
.LeftFooter=""
.CenterFooter=""
.RightFooter=""
.LeftMargin=
.RightMargin=(.96063)
.TopM
.
.HeaderMargin=(.5118110
.
.PrintHeadings=False
.PrintGridlines=False
.PrintNotes=False
.PrintQuality=Array(360,180)
.CenterHorizontally=True
.CenterVertically=False
.Orientation=xlPortrait
.Draft=False
.PaperSize=xlPaperUser
.FirstPageNumber=xlAutomatic
.Order=xlDownThenOver
.BlackAndWhite=False
.Zoom=100
EndWith
EndSub‘进行打印设置
Subvbb()‘指定给主界面上的主报表按钮
Worksheets("报表").Activate
EndSub‘激活主报表
Subibda()‘指定给主界面上的报表查询按钮
Worksheets("档案").Activate
EndSub‘激活档案工作表