📄 form1显示.txt
字号:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Private Sub Command1_Click()
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
MSComm1.Output = "0"
MSComm1.PortOpen = False
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 2 '选用COM2口通讯
MSComm1.Handshaking = comNone
MSComm1.Settings = "9600,E,8,1 " '设置通讯参数
MSComm1.InputLen = 0 '读取缓冲区全部内容
MSComm1.InBufferSize = 50 '设置接收缓冲区大小
MSComm1.OutBufferSize = 50 '设置发送缓冲区大小
MSComm1.PortOpen = True
MSComm1.InBufferCount = 0 '清除接收缓冲区
MSComm1.OutBufferCount = 0 '清除发送缓冲区
MSComm1.RThreshold = 1 '设置接收到一个字节就触发MsComm1.OnCom()事
Combo2.AddItem "5s/次"
Combo2.AddItem "10s/次"
Combo2.AddItem "0.5m/次"
Combo2.AddItem "1m/次"
Combo2.AddItem "5m/次"
End Sub
Private Sub MSComm1_OnComm()
Dim sdata As String
Dim BytesReceived() As Byte
Dim screen, hData, deplay, strn, strm, strl As String
Dim i, j, d As Integer
Dim l, s, r As Single
Select Case MSComm1.CommEvent
Case comEvReceive
buffer = MSComm1.Input
BytesReceived() = buffer
For i = 0 To UBound(BytesReceived) 'LBoud()数组下标上界,返回一个 Long 型数据,其值为指定的数组维可用的最大下标
If Len(Hex(BytesReceived(i))) = 1 Then 'Hex()返回十六进制数值的 String
hData = 0 & Hex(BytesReceived(i))
Else
hData = Hex(BytesReceived(i))
End If
screen = screen & hData
Next
deplay = Mid$(screen, 1, 2) & "." & Mid$(screen, 5, 2) 'Mid$(C,M,N)从第M个字符起,取C中N个字符
d = Val(deplay) - 248
l = d * 3.3 * 100 / 3.1 / 1024
Text1.Text = Str(l)
If l < 10 Then Text2.Text = "过干"
If 10 <= l < 20 Then Text2.Text = "干燥"
If 20 <= l < 50 Then Text2.Text = "适宜"
If 50 <= l < 90 Then Text2.Text = "湿润"
If l >= 90 Then Text2.Text = "过湿"
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Persist Security Info=False;Data Source=mymdb.mdb"
Set rs = New ADODB.Recordset
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.Open "select * from 历史", cn
If rs.RecordCount >= 30 Then
rs.MoveFirst
rs.Delete
End If
rs.MoveFirst
For i = 1 To rs.RecordCount
strn = rs.Fields("序号")
j = Val(strn)
j = j - 1
strm = Str(j)
rs.Fields("序号") = strm
rs.Update
rs.MoveNext
If rs.EOF = True Then rs.MoveFirst
Next
rs.AddNew
rs.Fields("序号") = "30"
rs.Fields("日期") = StatusBar1.Panels(2) & " " & StatusBar1.Panels(3)
rs.Fields("湿度") = Text1.Text
rs.Fields("等级") = Text2.Text
rs.Update
rs.MoveFirst
s = 0
For i = 1 To rs.RecordCount
strl = rs.Fields("湿度")
s = s + Val(strl)
rs.MoveNext
If rs.EOF = True Then rs.MoveFirst
Next
r = s / 30
Text3.Text = Str(r)
If r < 10 Then Text4.Text = "过干"
If 10 <= r < 20 Then Text4.Text = "干燥"
If 20 <= r < 50 Then Text4.Text = "适宜"
If 50 <= r < 90 Then Text4.Text = "湿润"
If r >= 90 Then Text4.Text = "过湿"
rs.Close
End Select
If Combo2.Text = "5s/次" Then
sdata = "1"
End If
If Combo2.Text = "10s/次" Then
sdata = "2"
End If
If Combo2.Text = "0.5m/次" Then
sdata = "3"
End If
If Combo2.Text = "1m/次" Then
sdata = "4"
End If
If Combo2.Text = "5m/次" Then
sdata = "5"
End If
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
MSComm1.Output = sdata
MSComm1.PortOpen = False
End Sub
Private Sub Search_Click()
Form2.Show
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -