1、(3)组合框控件(ComboBox)设置设置列表内容(List)为:1、2、3、4、5; 设置风格 (Style)为:2 Dropdown;(4)“Comand1”设置设置标题(Caption)为“设置”;将控件调整到适当位置(按住Ctrl+箭头可移动控件、格式菜单有对齐等操作)和适当大小。(5)“MSFlexGrid1”设置将控件调整到适当大小(Height=3135,Width=8535);将控件调整到适当位置(按住Ctrl+箭头可移动控件、格式菜单有对齐等操作)。(6)“Timer1”设置设置定时时间间隔(Interval)为1200。(五)“系统主界面窗体.frm” 代码设计(1)若窗
2、体打开,撰写代码实现如下功能:组合框的报警电压上限值默认选择“3”;串口初始化;读取存储的测量记录并显示。参考代码如下,实验要求:必须为每一句代码添加上注释。Private Sub Form_Load()Combo1.ListIndex = 2MSComm1.CommPort = 2 设置串口为COM2MSComm1.Settings = 9600,n,8,1 传输率为9600bit/s,无奇偶校验位,8位数据,1位停止MSComm1.RThreshold = 1 接收缓冲区每收到1个字节字符,都会触发执行MSComm控件的OnComm()事件函数MSComm1.SThreshold = 0
3、数据发送事件不产生OnComm()事件MSComm1.InputLen = 1 使用Input()函数时读取接收缓冲区的字符个数,0表示全部读取MSComm1.PortOpen = True 打开串口MSComm1.Output = 6向单片机发送字符6表示启动了VB,要求单片机发送当前设置的报警上限值DBConn.CursorLocation = adUseClientDBConn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & 数据库.mdb;Dim queryStr As StringqueryStr = s
4、elect * from 测量记录 order by 序号 descDim rs As New ADODB.RecordsetSet rs = DBConn.Execute(queryStr)MSFlexGrid1.Cols = rs.Fields.Count 设置列数MSFlexGrid1.Rows = 1 设置行数,目前可以确定的是只有一行MSFlexGrid1.ColWidth(0) = 1600 设置第1列的宽度For i = 1 To rs.Fields.Count - 1 设置剩余的列的宽度(等距离)MSFlexGrid1.ColWidth(i) = (MSFlexGrid1.Wi
5、dth - MSFlexGrid1.ColWidth(0) / (rs.Fields.Count - 1)Next iFor i = 0 To rs.Fields.Count - 1 设置第1行的值MSFlexGrid1.ColAlignment(i) = 3 各列文字居中显示MSFlexGrid1.TextMatrix(0, i) = rs.Fields(i).Name 第一行中各列的值为数据库中测量记录表的列名Do While Not rs.EOF 读取记录,直到指针指向末尾MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1 增加一行用来存储读取的记录将读取的记
6、录的值在增加的行中显示MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, i) = rs.Fields(i).Valuers.MoveNext 指针移向下一条记录LoopEnd Sub(2)撰写代码,实现实时获取电压值并显示。提示:类似单片机的串口中断函数,VB的串口控件也有一个串口接收事件函数OnComm(),如:MSComm1.RThreshold = 1 接收缓冲区每收到1个字节字符,都会触发执行MSComm控件的OnComm()事件函数。双击串口控件可以建立OnComm()事件函数。Private Sub MSComm1_OnComm()Selec
7、t Case MSComm1.CommEvent Case comEvReceive rd$ = MSComm1.Input 只接收1个字符 mv = mv & rd 接收的字符串 If (rd = N And Len(mv) = 5) Then 数据格式为0.00N Label4.Caption = 报警上限值: Mid(mv, Len(mv) - 4, 1) &V mv = End IfM数据格式为0.00M Label2.Caption = 电压值: Mid(mv, Len(mv) - 4, 4) & Label3.Caption = 时间: Now() insertStr = inse
8、rt into 测量记录(测量值,测量时间) values(,# Now() ) DBConn.Execute (insertStr) Case ElseEnd Select以上代码要能运行,需要进行如下设置和修改:(3)撰写代码,实现定时刷新网格控件(MSFlexGrid1)的显示。通过定时器定时刷新网格控件(MSFlexGrid1)的数据。定时器通过Interval属性(这里设置Interval的值为1200)定时调用时间函数Timer()。双击定时器控件可建立Timer()事件。Private Sub Timer1_Timer()MSFlexGrid1.Cols = rs.Field
9、s.CountMSFlexGrid1.Rows = 1MSFlexGrid1.ColWidth(0) = 1600For i = 1 To rs.Fields.Count - 1For i = 0 To rs.Fields.Count - 1MSFlexGrid1.ColAlignment(i) = 3MSFlexGrid1.TextMatrix(0, i) = rs.Fields(i).Namers.MoveFirstDo While Not rs.EOFMSFlexGrid1.Rows = MSFlexGrid1.Rows + 1rs.MoveNext(4)单击设置按钮,撰写代码实现如下功
10、能:通过串口发送设置的报警上限值给单片机;并给Label4标签赋值;弹出提示对话框。Private Sub Command1_Click() MSComm1.Output = Combo1.Text Combo1.Text & MsgBox 设置成功!, vbOKOnly + vbInformation, 恭喜(五)打开串口调试助手,进行如下操作:(1)发送数据填写为:2.67M;自动发送周期设置为:2000ms;勾选“自动发送”。(4)运行VB上位机程序,观察采集效果;(5)改变发送数据为“2.79M”,观察采集效果;(6)改变发送数据为“4.00N”,观察采集效果。(六)“退出”菜单设计(
11、1)选择“系统主界面窗体”,进行如下操作:按键Ctrl+E或选择菜单“工具菜单编辑器”打开菜单编辑器;(2)设置一级菜单“退出(T)”在“标题(P)”输入:退出(&T);在“名称(M)”输入:退出。(3)设置二级菜单“返回登陆界面”点击“下一个(N)”在“标题(P)”输入:返回登陆界面;在“名称(M)”输入:选择快捷键为:Ctrl+F;点击向右箭头将菜单项下降一个级别。(4)设置二级菜单“关闭系统”关闭系统;Ctrl+G;点击“确定”按钮完成设定。(5)若点击菜单项“返回登陆界面”,撰写代码实现如下功能:跳出对话框询问是否确定要返回登陆界面,若确定则关闭当前窗体,打开“登陆窗体” 。Priva
12、te Sub 返回登陆界面_Click()If MsgBox(您确定要返回登陆界面吗?, vbOKCancel, 请确定!) = vbOK ThenDBConn.CloseUnload Me登陆窗体.ShowEnd If(6)若点击菜单项“关闭系统”,撰写代码实现如下功能:跳出对话框询问是否确定要关闭系统,若确定则关闭系统。Private Sub 关闭系统_Click()您确定要退出本系统?) = vbOK Then End(七)“数据”菜单设计(2)设置一级菜单“数据(S)”选择“关闭系统”菜单项;点击“下一个(N)”;点击“向左箭头”,将菜单项上升一个级别;在“标题(P)”输入:数据(&在
13、“名称(M)”输入:数据。(3)设置二级菜单“清除测量数据”清除测量数据;Ctrl+Q;点击向右箭头将菜单项下降一个级别;点击“确定”按钮完成设置。(4)若点击菜单项“清除测量数据”,撰写代码实现如下功能:跳出对话框询问是否确定要清除测量数据,若确定则删除存储的测量数据,并提示清除成功。Private Sub 清除测量数据_Click()您确定要清除测量数据吗?Dim deleteStr As StringdeleteStr = delete from 测量记录DBConn.Execute (deleteStr)MsgBox 清除测量数据成功!(八)“用户”菜单设计(2)设置一级菜单“用户(Y
14、)”选择“清除测量数据”菜单项;用户 (&Y);用户。(3)设置二级菜单“查看和修改个人信息”点击“下一个(N)”;查看和修改个人信息;点击向左箭头将菜单项下降一个级别。(4)设置二级菜单“修改密码”修改密码;Ctrl+X;点击“确定”命令按钮。(5)若点击菜单项“查看和修改个人信息”,撰写代码实现如下功能:弹出窗体“查看和修改个人信息窗体” 。Private Sub 查看和修改个人信息_Click()查看和修改个人信息窗体.Show以上代码要能运行必须进行如下设计:添加“查看和修改个人信息窗体”(1)窗体文件保存,名字为“查看和修改个人信息窗体.frm”;(2)“查看和修改个人信息窗体.fr
15、m” 设置设置窗体名(名称)为“查看和修改个人信息窗体”;设置窗体标题(Caption)为“查看和修改个人信息窗体”;添加窗体背景图片(Picture);设置(Height=5725,Width=7500)或拉动窗体到适当大小。“查看和修改个人信息窗体.frm” 控件放置(1)放置6个标签控件(Label)、3个文本框控件(TextBox)、1个组合框控件(ComboBox)和2个命令按钮(CommandButton)。“查看和修改个人信息窗体.frm” 控件设置设置背景样式(BackStyle)为“0 - Transparent”;(2)文本框控件(TextBox)设置设置文本内容(Text
16、)都为空;将控件调整到适当位置(按住Ctrl+箭头可移动控件)和适当大小。男、女;2 Dropdown List;(4)“Comand1”和“Comand2”设置设置标题(Caption)分别为“修改”和“取消”;“查看和修改个人信息窗体.frm” 代码设计连接数据库,读取登陆用户的信息,并将读取的用户信息填入对应控件。Dim DBConn As New ADODB.Connectionselect * from 用户 where 用户名= 登陆窗体.userName &Label2.Caption = rs(用户名)Text1.Text = rs(姓名If (StrComp(rs(性别),
17、男, vbBinaryCompare) = 0) ThenCombo1.ListIndex = 0ElseCombo1.ListIndex = 1Text2.Text = rs(电话Text3.Text = rs(邮箱代开登陆窗体的代码串口,按如下要求进行修改?思考为什么。(2)若点击“修改”按钮,撰写代码实现如下功能:判断姓名是否为空,若为空则弹出对话框提示;将新的用户信息写入数据库,并提示修改成功。If Text1.Text = Then请输入姓名!, vbOKOnly + vbExclamation, 警告Text1.SetFocusExit SubDim updateStr As St
18、ringupdateStr = update 用户 set 姓名= Trim(Text1.Text) &,性别= Trim(Combo1.Text) &,电话= Trim(Text2.Text) &,邮箱= Trim(Text3.Text) & where 用户名=DBConn.Execute (updateStr)修改成功!(3)若点击“取消”按钮,撰写代码实现如下功能:关闭当前窗体。Private Sub Command2_Click()(九)若点击“用户”菜单下的菜单项“修改密码”,应该实现什么功能?请补充完成该部分的设计。四、实验记录(1)对所有以上撰写的每一句代码都添加注释后附在实验报告后(把字体弄小点,看得清楚就可以,不要那么多页),可打印。五、实验提交要求(1)每次实验课后提交实验做题文件;(2)撰写实验报告(可打印),内容包括实验目的、实验工具、实验内容(可全部省略,只保留“实验内容”大标题)、实验记录及结果,提交时间为下次实验时;(3)实验报告提交时间为下一次实验课的时候。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1