我在*.txt的文件里有两行数据。
格式为:
时间 气压
20010101,995.2
20010102,996.3
20010103,1002.2
...
...
20030101, 899.2
...
...如何做成一个有坐标图线!
最好有示例代码!多谢各位大侠!!
格式为:
时间 气压
20010101,995.2
20010102,996.3
20010103,1002.2
...
...
20030101, 899.2
...
...如何做成一个有坐标图线!
最好有示例代码!多谢各位大侠!!
Set rs = New ADODB.Recordset
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=" & App.Path & ";", "", "" rs.Open "select * from [test#txt]", conn, adOpenStatic, _
adLockReadOnly, adCmdText
Set Read_Text_File = rs
Set rs = Nothing
Set conn = Nothing
End FunctionPrivate Sub cmdReadTXT_Click()
Set dgData.DataSource = obj.Read_Text_File
Set obj = Nothing
End Sub
新建工程,选择"vb 企业版控件",然后在工具栏可以发现该控件。
引用
microsoft activex data object 2.6 library
添加控件microsoft chart control 6.0
Option Explicit
Function Read_Text_File() As ADODB.Recordset
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=" & App.Path & ";", "", "" rs.Open "select * from [test#txt]", conn, adOpenStatic, _
adLockReadOnly, adCmdText
Set Read_Text_File = rs
Set rs = Nothing
Set conn = Nothing
End FunctionPrivate Sub Command1_Click()
Dim Values() As Variant
Dim NumPoints As Integer
Dim i As IntegerDim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Set rs = Read_Text_File()
'Set MSChart1.DataSource = rs '或者直接帮丁
NumPoints = rs.RecordCount
ReDim Values(1 To NumPoints, 1 To 2) ' 加载数据
rs.MoveFirst
For i = 1 To NumPoints
Values(i, 1) = CStr(rs!时间)
Values(i, 2) = CStr(rs!气压)
rs.MoveNext
Next i
rs.Close
MSChart1.ChartData = Values
End Sub
多谢你的回帖,可如何把上面的代码和数据文件连结起来呀? 我很菜呀!!!
时间,气压
2001,995.2
2002,996.3
2003,1002.2
2004,899.2
2005,995.2
2006,996.3
2007,1002.2
2008,899.2
'Picture1.ScaleLeft = Picture1.ScaleLeft + Picture1.ScaleWidth / 2
'Picture1.ScaleTop = Picture1.ScaleTop + Picture1.ScaleHeight / 2
Picture1.Scale (0, 300)-(300, -50)
'MsgBox Str(Picture1.ScaleLeft) + "--" + Str(Picture1.ScaleTop)
Picture1.Line (0, 0)-(0, 300), vbRed
Picture1.Line (0, 0)-(400, 0), vbRed
Picture1.Line (constA1 * tDB(1).preP, constA2 * tDB(1).liqQ)-(constA1 * tDB(2).preP, constA2 * tDB(2).liqQ)
For j = 3 To 17
Picture1.Line -(constA1 * tDB(j).preP, constA2 * tDB(j).liqQ)
Next j
For j = 1 To 17
Picture1.Print "Q-P线"
Picture1.CurrentY = -10
Picture1.CurrentX = constA1 * tDB(j).preP
Picture1.Print tDB(j).preP
Next j
For j = 1 To 17
Picture1.Circle (constA1 * tDB(j).preP, constA2 * tDB(j).liqQ), Radius, vbRed
Next j
你的一点帮助,可能是我很大的进步呀!!
你帮我了,我可以从很多地方回报你呀!
happywqw(键盘跳蚤) 的方法不错.去数值计算中找到曲线插值算法,应该有这方面的子程序.
然后运行那一段代码//多谢你的回帖,可如何把上面的代码和数据文件连结起来呀? 我很菜呀!!!
已经连接起来了