VB6编程步骤全部Word格式文档下载.docx

上传人:b****7 文档编号:22815712 上传时间:2023-02-05 格式:DOCX 页数:21 大小:303.14KB
下载 相关 举报
VB6编程步骤全部Word格式文档下载.docx_第1页
第1页 / 共21页
VB6编程步骤全部Word格式文档下载.docx_第2页
第2页 / 共21页
VB6编程步骤全部Word格式文档下载.docx_第3页
第3页 / 共21页
VB6编程步骤全部Word格式文档下载.docx_第4页
第4页 / 共21页
VB6编程步骤全部Word格式文档下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

VB6编程步骤全部Word格式文档下载.docx

《VB6编程步骤全部Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VB6编程步骤全部Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。

VB6编程步骤全部Word格式文档下载.docx

在subMain中调用Init过程

Submain()

Init'

初始化,读取原设置参数

frmMain.ShowvbModal'

启动主窗体,有模式窗体

(3)设置frmConfig窗体的界面。

如图所示

上述四个文本框的名字,从上到下依次为:

txtTempH,txtTempL,txtRHH,txtRHL

双击该窗体空白处,在Form_Load事件中输入代码,如下

PrivateSubForm_Load()'

调入旧参数并显示在界面上

Me.txtRHH=mAlarm.RHH

Me.txtRHL=mAlarm.RHL

Me.txtTempH=mAlarm.TH

Me.txtTempL=mAlarm.TL

双击该窗体上的“确定”按钮,代码如下:

PrivateSubcmdOK_Click()'

把界面上输入的新参数保存在变量中

mAlarm.TH=Me.txtTempH

mAlarm.TL=Me.txtTempL

mAlarm.RHH=Me.txtRHH

mAlarm.RHL=Me.txtRHL

变量保存在文件中

OpensAppPath&

ForRandomAs#1Len=Len(mAlarm)

Put#1,1,mAlarm

Close#1

UnloadMe

6.下位机数据的模拟采集

(1)定义变量存放下位机的数据

PublicTypemData'

下位机数据,用于保存到磁盘文件中

T(1To2)AsSingle'

温度

RH(1To2)AsSingle'

湿度

PublicmD(1To4)AsmData'

用自定义类型mData定义下位机数据变量

(2)在frmMain窗体上放置一个定时器控件,命名为:

tmrCaiji,其Ennabled属性设为True,并设Interval属性为1000,双击定时器,完成代码如下所示:

PrivateSubtmrCaiji_Timer()'

采集定时器,模拟产生下位机的数据

Fori=1To4

mD(i).T

(1)=30+Rnd*20:

mD(i).T

(2)=50+Rnd*20'

随机数Rnd在0~1之间

mD(i).RH

(1)=60+Rnd*20:

mD(i).RH

(2)=30+Rnd*20

Nexti

7.下位机数据更新到界面上,并作报警处理

放置一个定时器,命名为:

tmrUpdate,其Ennabled属性设为True,并设Interval属性为1000,双击定时器,完成代码如下所示

PrivateSubtmrUpdate_Timer()'

更新界面定时器

Fori=1To4'

显示温度,并格式化为显示1位小数

Me.lblTemp1(i)=Format(mD(i).T

(1),"

#0.0"

):

Me.lblTemp2(i)=Format(mD(i).T

(2),"

)Rnd

Me.lblRH1(i)=Format(mD(i).RH

(1),"

Me.lblRH2(i)=Format(mD(i).RH

(2),"

Nexti

IfmD(i).T

(1)>

=mAlarm.THThen'

温度高于报警值上限

Me.lblTemp1(i).BackColor=vbRed'

背景变红

ElseIfmD(i).T

(1)<

mAlarm.TLThen'

温度低于报警值下限

Me.lblTemp1(i).BackColor=vbCyan'

背景变青色

Else'

温度正常

Me.lblTemp1(i).BackColor=vbGreen'

背景变绿色

EndIf

Nexti

8.绘制曲线

(1)放置按钮“开始绘图”,命名为cmdDraw,输入下列代码:

PrivateSubcmdDraw_Click()

Me.tmrDraw.Enabled=NotMe.tmrDraw.Enabled'

每单击一次,切换一次定时器启动/停止命令

IfMe.tmrDraw.Enabled=TrueThenMe.cmdDraw.Caption="

暂停绘图"

ElseMe.cmdDraw.Caption="

开始绘图"

(2)在frmMain窗体上放置图片框控件picturebox,设置背景为深蓝,命名为picD,在图片框左侧和下侧放置lablel控件,作为坐标刻度指示。

,界面如图所示

(3)在frmMain窗体代码窗口创建一个初始化坐标系的过程,如下所示

SubInitDraw(XminAsSingle,XmaxAsSingle,YminAsSingle,YmaxAsSingle)'

自变量x,函数值y,min-max:

Me.picD.AutoRedraw=True'

自动重绘

Me.picD.Cls'

清屏

Me.picD.Scale(Xmin,Ymax)-(Xmax,Ymin)'

定义坐标系(左上角x,左上角y)-(右下角x,右下角y)

Me.picD.DrawWidth=1'

画线宽度为1

画垂直网格

Fori=1To6:

Me.picD.Line((Xmax-Xmin)/6*i+Xmin,Ymin)-((Xmax-Xmin)/6*i+Xmin,Ymax),vbWhite:

画水平网格

Fori=1To10:

Me.picD.Line(Xmin,(Ymax-Ymin)/10*i+Ymin)-(Xmax,(Ymax-Ymin)/10*i+Ymin),vbWhite:

Me.picD.CurrentX=Xmin:

Me.picD.CurrentY=Ymin'

光标回原点

Me.picD.DrawWidth=2'

画线宽度为2

(4)放置一个定时器,命名为:

tmrDraw,其Ennabled属性设为false,并设Interval属性为100,双击定时器,完成代码如下所示

PrivateSubtmrDraw_Timer()'

绘制曲线定时器

StaticTAsInteger'

定义静态变量

T=T+1'

累加

IfT=60Then'

到60次

T=0'

回到0

CallInitDraw(0,60,0,100)重新初始化坐标系

EndIf

Me.picD.Line-(T,mD

(1).T

(1)),vbYellow'

画线,由上次光标位置画到指定坐标,光标也更新

(5)双击frmMain窗体,在其Load事件中调用初始化坐标系的过程,如下:

PrivateSubForm_Load()

CallInitDraw(0,60,0,100)'

初始化坐标系

9.数据记录

(1)在frmMain窗体上放置两个按钮“开始记录”和停止记录,命名为cmdStart和cmdStop,放置一个定时器命名为tmrRecord,其定时间隔设为1000

(2)在程序所在文件夹建一个Excel文件,另存为97-2003兼容模式,名为“数据模板.xls”如图所示:

(3)在frmMain代码窗口创建如下过程

SubOpenExcel()

DimsFileNameAsString'

文件名

sFileName=sAppPath&

\"

&

Month(Now)&

-"

Day(Now)&

Hour(Time)&

Minute(Time)&

Second(Time)'

“月-日-时-分-秒”作文件名

CallGetExcel'

获取可用的Excel文件

sXLSName=sFileName&

.xls"

:

sModelName=sAppPath&

\数据模板.xls"

IfDir(sXLSName)<

>

"

ThenKillsXLSName'

如果欲保存的Excel文件已存在,则先删除

SetxlApp=GetObject(sModelName)'

打开模扳文件

xlApp.Parent.Windows

(1).Visible=True'

使父窗体可见

SetxlSheet=xlApp.Application.Worksheets

(1)'

当前工作簿的第一页

(4)为“开始记录”按钮添加代码:

PrivateSubcmdStart_Click()

OpenExcel'

打开Excel文件

xlSheet.Cells(1,5)=Month(Now)&

月"

日采集的数据"

xlSheet.Cells(2,1)="

序号"

xlSheet.Cells(2,2)="

时间"

Fori=1To8:

xlSheet.Cells(2,i+2)=i&

#温度"

xlSheet.Cells(2,i+2+8)=i&

#湿度"

Me.tmrRecord.Enabled=True'

开始记录

Me.cmdStop.Enabled=True:

Me.cmdStart.Enabled=False'

使能“停止记录”按钮,禁止“开始记录”按钮

(5)为“停止记录”按钮添加代码:

PrivateSubcmdStop_Click()

Me.tmrRecord.Enabled=False'

停止记录数据

xlSheet.SaveAssXLSName'

Excel表格另存

xlApp.Application.Quit'

退出Excel

Me.cmdExit.Enabled=True'

保存完Excel后才能退出系统

Me.cmdStart.Enabled=True:

Me.cmdStop.Enabled=False'

使能“开始记录”按钮,禁止“停止记录”按钮

(6)为定时器tmrRecord按钮添加代码:

PrivateSubtmrRecord_Timer()'

数据记录定时器,定时保存到Excel表格

StatickAsLong

k=k+1

If(kMod5)=0Then'

定时器中断5次(即5秒)执行一次

SaveToExcel'

数据记录到Excel文件

(7)在frmMain代码窗口创建SaveToExcel过程,如下所示:

PrivateSubSaveToExcel()

StatickAsLong'

K为行号

Ifk>

32767Thenk=0'

Excel最大行不能超过32768

xlSheet.Cells(k+2,1)=Time:

xlSheet.Cells(k+2,2)=k'

表头

xlSheet.Cells(k+2,3)=Format(mD

(1).T

(1),"

)&

℃"

xlSheet.Cells(k+2,4)=Format(mD

(1).T

(2),"

xlSheet.Cells(k+2,5)=Format(mD

(2).T

(1),"

xlSheet.Cells(k+2,6)=Format(mD

(2).T

(2),"

xlSheet.Cells(k+2,7)=Format(mD(3).T

(1),"

xlSheet.Cells(k+2,8)=Format(mD(3).T

(2),"

xlSheet.Cells(k+2,9)=Format(mD(4).T

(1),"

xlSheet.Cells(k+2,10)=Format(mD(4).T

(2),"

xlSheet.Cells(k+2,11)=Format(mD

(1).RH

(1),"

#0"

%"

xlSheet.Cells(k+2,12)=Format(mD

(1).RH

(2),"

xlSheet.Cells(k+2,13)=Format(mD

(2).RH

(1),"

xlSheet.Cells(k+2,14)=Format(mD

(2).RH

(2),"

xlSheet.Cells(k+2,15)=Format(mD(3).RH

(1),"

xlSheet.Cells(k+2,16)=Format(mD(3).RH

(2),"

xlSheet.Cells(k+2,17)=Format(mD(4).RH

(1),"

xlSheet.Cells(k+2,18)=Format(mD(4).RH

(2),"

10.使用ADO访问数据库

(1)创建数据库(DB)

①使用“可视化数据管理器”创建一个数据库文件:

执行菜单命令“外接程序\可视化数据管理器”,在打开的对话框中执行如下菜单命令,数据库文件命名为“数据”,保存

②在数据库窗口中,点右键,选“新建表”,表名称为“数据表”,按如下表格添加字段

名称

类型

大小

必要的

顺序位置

缺省值

序号

Long

4

时间

Date/time

8

1

00:

01

温度1

Single

2

温度2

温度3

温度4

湿度1

湿度2

湿度3

湿度4

添加完后,点击“生成表”

③双击“数据表”,点“添加”,输入数据,每输入完一条记录就点击“更新”,如果出现下列错误提示,点“否”

输入4~5行数据即可,关闭“可视化数据管理器”

(2)创建数据库访问程序

①在frmMain窗体上放置一个按钮,外形:

,名称:

cmdDB

②新建一个窗体,按下表设置属性

属性名

Caption

Width

Height

MaxButton

MinButton

属性值

frmDB

数据访问窗口

15000

9000

False

③在frmDB窗体下方放置两个按钮外形:

,分别命名为cmdQuery和cmdQuit。

④在frmDB窗体上,执行菜单命令“工程/部件”,按下图选择ADO控件(ActiveXDataObjects)和DataGrid控件。

点击“确定”,可以看到左侧的工具箱多了两个工具图标:

⑤在frmDB窗体上放置一个DataGrid控件,设置其宽度(Width)为14000,高度(Height)为7000,其背景色(BackColor)为黄色。

右键单击该控件,选“属性”,打开其属性窗口,设置下列其字体属性

⑥切换到frmDB的代码窗口,定义访问数据库必须的变量:

DimnAsNewConnection,RstAsNewADODB.Recordset

⑦生成数据库连接字符串:

在frmDB窗体上放置一个ADO控件,右键单击它,如下图选ADODC属性

打开ADO控件的属性页:

点“生成”,得到下图,如图中所示选第二项

点“下一步”,得到下图

点击图中位置,找到数据库文件“数据.mdb”,如下图

点“测试连接”,显示

,点确定,复制属性页第一页中“使用连接字符串”下面文本框中的容。

⑧删除frmDB窗体上的ADO控件,双击“查询”按钮,输入如下代码

PrivateSubcmdQuery_Click()

连接数据库并实现所要求的查询

n.CursorLocation=adUseClient

n.Open"

Provider=Microsoft.Jet.OLEDB.4.0;

PersistSecurityInfo=False;

DataSource=E:

\软件技术基础\TR\数据.mdb"

此处粘贴刚刚生成的连接字符串

Rst.Open"

select序号,时间,温度1,湿度1,from数据where温度1>

30"

n,adOpenStatic,adLockBatchOptimistic,adCmdText

Rst.Open"

select*from数据表"

Debug.PrintRst.RecordCount

若无满足要求的记录,则提前退出

IfRst.RecordCount<

1Then'

若无符合条件的记录,则

SetMe.DataGrid1.DataSource=Rst'

更新查询结果显

ExitSub

Rst.Sort="

排序

显示于表格中

Fori=0To9:

Me.DataGrid1.Columns(i).Width=Me.DataGrid1.Width/10:

Me.DataGrid1.Caption="

查询到的数据"

(3)完成数据访问窗体,双击“返回按钮”,输入下面代码:

PrivateSubcmdQuit_Click()

Rst.Close'

关闭视图

n.Close'

断开数据库连接

UnloadMe'

关闭窗体

11.给采集到的数据添加滤波功能

(1)添加模块module2,在其代码窗口中输入下面函数:

'

中位平均法滤波函数,数组x中去掉TrimN个最大的和最小的,剩余数据取平均值

PublicFunctionMidLvBo(x()AsSingle,TrimNAsInteger)AsSingle

DimL,U:

L=LBound(x):

U=UBound(x)'

取数据源数组下标的下限和上限

Dimb()AsSingle:

ReDimb(LToU)'

定义用于排序的数组

Fori=LToU:

b(i)=x(i):

Nexti'

数组另存

以下为冒泡法排序

Fori=LToU-1

Forj=i+1ToU

If(b(i)>

b(j))Then

DimtAsSingle

t=b(i):

b(i)=b(j):

b(j)=t'

交换

Nextj

DimsumAsSingle,nAsInteger:

sum=0'

sum为求和数,n为最终留下的数据个数

Fori=L+TrimNToU-TrimN:

sum=sum+b(i):

中间数求和

n=U-L-2*TrimN+1'

留下的数据个数

Ifn<

=0ThenMidLvBo=0ElseMidLvBo=sum/n'

异常处理

EndFunction

(2)在frmMain窗体空白处放置按钮,

,命名为cmdLvBo,双击它,添加下面的代码:

PrivateSubcmdLvBo_Click()

Dimx(1To6)AsSingle,TrimNAsInteger,yAsSingle

Fori=1To6

x(i)=CSng(InputBox("

请输入6个数据,当前是第"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1