在VB中通过MSChart控件生成图表,采用Access数据库,使用相对路径调用数据库文件,源程序代码如下:
------------------------
Private Sub btnCopy_Click()
' 将数据和图表的图片复制到剪贴板.在Excel中粘贴的话是将把图表数据集复制到工作表中。
' 如要将图表图片插入到工作表中,可在选定“选择性粘贴”后选择“位图”类型。
mscPinDian.EditCopy
End Sub
Private Sub btnTuBiao_Click()
' 定义变量
Dim i As Integer
Dim rs As Recordset
Dim ws As Workspace
Dim db As Database
Dim strDBName As String ' 数据库文件相对路径
http://dl2.youkuaiyun.com/down4/20070713/13100414411.rar
' 设置数据库文件的相对路径
strDBName = App.Path
If Right$(strDBName, 1) <> "/" Then strDBName = strDBName & "/"
strDBName = strDBName & "db/dbPinDian.mdb"
' 打开数据库.
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(strDBName)
''Set db = OpenDatabase(strDBName)
Set rs = db.OpenRecordset("select 频点,TCH,BCCH from tbl_PinDian order by 频点", dbOpenSnapshot)
''rs.MoveLast
''rs.MoveFirst
If rs.RecordCount = 0 Then
MsgBox "数据库表中没有数据,请在数据库中输入数据!", vbCritical, "提示"
Exit Sub
End If
mscPinDian.Visible = True ' 设置图表不可见
With mscPinDian
.TitleText = "频点TCHBCCH图表" ' 设置图表标题
.ColumnCount = 2 ' 设置数据网格的列数 为 2 如 TCH 和 BCCH
.RowCount = rs.RecordCount ' 设置数据网格的行数 既是上面查询所得的记录数
For i = 1 To rs.RecordCount
.Row = i
.RowLabel = rs("频点")
.Column = 1 ' 设置数据网格的第一个活动列
.ColumnLabel = "TCH" ' 设置该活动列的标签
.Data = rs("TCH") ' .Data = rs.Fields("TCH")
.Column = 2 ' 设置数据网格的第二个活动列
.ColumnLabel = "BCCH" '设置该活动列的标签
.Data = rs("BCCH")
rs.MoveNext
Next i
'// 设置是否自动缩放
'.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
'// 设置最大值
.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 50
'// 设置最小值
.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
'// 设置主要间隔
.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 5
'// 设置次要间隔
.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 1
'// 标记每个点的值
For i = 1 To .Plot.SeriesCollection.Count
.Plot.SeriesCollection(i).DataPoints(-1).DataPointLabel.LocationType = VtChLabelLocationTypeAbovePoint
Next
End With
rs.Close
End Sub
Private Sub Form_Load()
' 设置图表不可见
mscPinDian.Visible = False
End Sub
Private Sub MSChart1_OLEStartDrag(Data As MSChart20Lib.DataObject, AllowedEffects As Long)
End Sub
VB中用MSChart控件生成图表 源文件:
http://dl2.youkuaiyun.com/down4/20070713/13100414411.rar
------------------------
Private Sub btnCopy_Click()
' 将数据和图表的图片复制到剪贴板.在Excel中粘贴的话是将把图表数据集复制到工作表中。
' 如要将图表图片插入到工作表中,可在选定“选择性粘贴”后选择“位图”类型。
mscPinDian.EditCopy
End Sub
Private Sub btnTuBiao_Click()
' 定义变量
Dim i As Integer
Dim rs As Recordset
Dim ws As Workspace
Dim db As Database
Dim strDBName As String ' 数据库文件相对路径
http://dl2.youkuaiyun.com/down4/20070713/13100414411.rar
' 设置数据库文件的相对路径
strDBName = App.Path
If Right$(strDBName, 1) <> "/" Then strDBName = strDBName & "/"
strDBName = strDBName & "db/dbPinDian.mdb"
' 打开数据库.
Set ws = DBEngine.Workspaces(0)
Set db = ws.OpenDatabase(strDBName)
''Set db = OpenDatabase(strDBName)
Set rs = db.OpenRecordset("select 频点,TCH,BCCH from tbl_PinDian order by 频点", dbOpenSnapshot)
''rs.MoveLast
''rs.MoveFirst
If rs.RecordCount = 0 Then
MsgBox "数据库表中没有数据,请在数据库中输入数据!", vbCritical, "提示"
Exit Sub
End If
mscPinDian.Visible = True ' 设置图表不可见
With mscPinDian
.TitleText = "频点TCHBCCH图表" ' 设置图表标题
.ColumnCount = 2 ' 设置数据网格的列数 为 2 如 TCH 和 BCCH
.RowCount = rs.RecordCount ' 设置数据网格的行数 既是上面查询所得的记录数
For i = 1 To rs.RecordCount
.Row = i
.RowLabel = rs("频点")
.Column = 1 ' 设置数据网格的第一个活动列
.ColumnLabel = "TCH" ' 设置该活动列的标签
.Data = rs("TCH") ' .Data = rs.Fields("TCH")
.Column = 2 ' 设置数据网格的第二个活动列
.ColumnLabel = "BCCH" '设置该活动列的标签
.Data = rs("BCCH")
rs.MoveNext
Next i
'// 设置是否自动缩放
'.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
'// 设置最大值
.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 50
'// 设置最小值
.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0
'// 设置主要间隔
.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 5
'// 设置次要间隔
.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 1
'// 标记每个点的值
For i = 1 To .Plot.SeriesCollection.Count
.Plot.SeriesCollection(i).DataPoints(-1).DataPointLabel.LocationType = VtChLabelLocationTypeAbovePoint
Next
End With
rs.Close
End Sub
Private Sub Form_Load()
' 设置图表不可见
mscPinDian.Visible = False
End Sub
Private Sub MSChart1_OLEStartDrag(Data As MSChart20Lib.DataObject, AllowedEffects As Long)
End Sub
VB中用MSChart控件生成图表 源文件:
http://dl2.youkuaiyun.com/down4/20070713/13100414411.rar