菜鳥一枚,從未接觸過VB代碼思路是VB作為客戶端,讀取WiFi服務器的資料,讀取的資料格式是fre:**MVPP:****mv;并在坐標軸上繪制成幅頻曲線,求求大神幫幫忙啊Dim receive_data(257) As String
Dim myArray(2) As String
Dim X(20) As String
Dim MyCaption(20) As String
Dim X1 As Single, Y1 As Single
Dim X2 As Single, Y2 As Single
Public Sub RefreshGraph()
Dim MyColor(2) As Long
Dim MyLegend(0) As String
Dim i As Integer
For i = 1 To 20
MyCaption(i) = i
Next i
MyColor(0) = vbRed
Chart1.MinValue = 0
Chart1.Rows = 20
Chart1.Cols = 20
Chart1.DrawGraph myArray, MyColor, MyCaption
MyLegend(0) = "幅頻采集圖"
Chart1.DrawLegend MyLegend, MyColor
End Sub
Private Function InsertDB(ByVal table_name As String, ByVal value As String) As Byte
On Error GoTo gperror
Dim objCn As New ADODB.Connection
Dim objRs As New ADODB.Recordset
Dim strCn As String
Dim strSQL As String
' 定義資料庫連接引數變數 myArray(0) = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
Dim i As Integer
For i = 1 To 20
X(20) = "0"
Next i
Chart1.MaxValue = 2000
RefreshGraph
Dim db_host As String
Dim db_user As String
Dim db_pass As String
Dim db_data As String
' 初始化資料庫連接變數
db_host = "127.0.0.1"
db_user = "root"
db_pass = "root"
db_data = "fupin"
objCn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" & _
"SERVER=" & db_host & ";" & _
"DATABASE=" & db_data & ";" & _
"UID=" & db_user & ";PWD=" & db_pass & ";" & _
"OPTION=3;stmt=SET NAMES GB2312"
objCn.Open
strSQL = "INSERT INTO " + fupinshuju + "(Fre,VPP) VALUES(" + Chr(34) + Fre + Chr(34) + "," + Chr(34) + VPP + Chr(34) + ");"
Set objRs.ActiveConnection = objCn
objRs.Open (strSQL)
'關閉資料庫連接,釋放物件
objCn.Close
Set objRs = Nothing
Set objCn = Nothing
Exit Function
gperror:
Check_PassWord = 255
Set objRs = Nothing
Set objCn = Nothing
End Function
Private Sub CmdSend_Click()
If (tcpserver.State = 7) Then
tcpserver.SendData txtSend.Text
txtSend.Text = ""
End If
End Sub
Private Sub CmdStart_Click()
If (tcpserver.State <> 7) Then
tcpserver.Close
tcpserver.Connect txtIP.Text, txtPort.Text
'tcpserver.Connect "127.0.0.1", txtPort
Else
tcpserver.Close
CmdStart.Caption = "連接服務"
txtIP.Enabled = True
txtPort.Enabled = True
txtIP.BackColor = &H80000005
txtPort.BackColor = &H80000005
End If
End Sub
Private Sub Form_Load()
Me.Left = Screen.Width / 2 - Me.Width / 2
Me.Top = Screen.Height / 2 - Me.Height / 2 '全屏下讓表單居中
'txtIP.Text = tcpserver.LocalIP
txtIP.Text = "192.168.4.1"
txtPort.Text = 8086
If (tcpserver.State <> 7) Then
CmdStart.Caption = "連接服務"
txtIP.Enabled = True
txtPort.Enabled = True
txtIP.BackColor = &H80000005
txtPort.BackColor = &H80000005
Else
CmdStart.Caption = "斷開服務"
End If
MyCaption(0) = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
Dim i As Integer
For i = 1 To 20
X(i) = "0"
Next i
Chart1.MaxValue = 2000
RefreshGraph '重繪
'txtMQ2.Text = pm25(1) + "," + pm25(2) + "," + pm25(3) + "," + pm25(4) + "," + pm25(5) + "," + pm25(6) + "," + pm25(7) + "," + pm25(8) + "," + pm25(9) + "," + pm25(10)
End Sub
Private Sub Form_Unload(Cancel As Integer)
tcpserver.Close
End Sub
Private Sub tcpserver_Close()
tcpserver.Close
CmdStart.Caption = "連接服務"
txtIP.Enabled = True
txtPort.Enabled = True
txtIP.BackColor = &H80000005
txtPort.BackColor = &H80000005
End Sub
Private Sub tcpserver_Connect()
CmdStart.Caption = "斷開服務"
txtIP.Enabled = False
txtPort.Enabled = False
txtIP.BackColor = &H80000000
txtPort.BackColor = &H80000000
End Sub
Private Sub tcpserver_ConnectionRequest(ByVal requestID As Long)
If tcpserver.State <> sckClosed Then
tcpserver.Close
End If
tcpserver.Accept requestID
End Sub
Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)
Dim value As String
Static k As Integer
Dim j As Integer
Dim f As String
Dim v As String
k = tcpserver.BytesReceived
tcpserver.GetData receive_data(0), vbByte, k '從k讀取的存放在receive_data中,讀取資料的型別是位元組
value = receive_data(0)
If (StrComp(Mid(value, 1, 3), "Fre") = 0 And StrComp(Left(Right(value, 10), 3), "VPP") = 0) Then 'strcomp字串比較函式
f = Mid(value, 1, Len(value) - 10) 'fre的值fre:___20M
End If
txtRecv.Text = txtRecv.Text + Mid(value, 1, InStr(7, value, "M")) 'instr 回傳要截取的字串
f = Mid(value, 5, InStr(5, value, "M") - 5) '頻率單獨數值
v = Mid(value, 12, 4)
strSQL = "INSERT INTO " + fupinshuju + "(Fre,VPP) VALUES (" + Chr(34) + Trim(f) + Chr(34) + "," + Chr(34) + Trim(v) + Chr(34) + ");" '插入幅頻資料至MySQL
'Set objRs.ActiveConnection = objCn
'objRs.Open (strSQL)
X(20) = Trim(f)
MyCaption(20) = Trim(v)
Chart1.CurrentX = Trim(f)
Chart1.CurrentX = Trim(v)
Chart1.Print "Trim(f),Trim(v)"
Circle (Trim(f), Trim(v)), 5
End Sub
幫幫忙啊,最后不知道怎么在坐標軸上描點畫曲線,求求大神幫幫忙
uj5u.com熱心網友回復:
百度搜“”VB6 MsChart控制元件“”。uj5u.com熱心網友回復:
既然是“菜鳥”,就要從簡單的開始入手,循序漸進…………
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/48489.html
下一篇:VBA 查找另一個EXCEL資料
