2024年4月4日发(作者:)

《 VB6.0中通过MSChart控件调用数据库 》

VB6.0中的MSChart控件是一个功能强大的高级图表工具,拥有丰富的图表绘制功能,

可显示二维和三维的棒图、区域图、线形图、饼图等多种常用图表。近日我为了在双击图

表的某个区域时将与该区域相对应的数据库的内容在DataGrid控件上显示出来,遇到了

许多困难,最后用一个自定义的变量SelectSeries解决了问题,具体方法如下:

设数据库名称为“学生信息”,有一Access表“学生成绩”,其内容为一个班学生的

考试成绩,包括学号、姓名、成绩3个字段,成绩字段格式是字符型,值为“优”、“良”、

“中”、“差”中的一个。

窗体Form1包括一个MSChart控件McScore,类型为二维饼图,用于显示每种成绩

的学生数;一个ADO控件AdScore用于连接数据库;一个DataGrid控件DgScore用于

以表格形式显示数据库内容。

工作过程为:双击饼图的某个区域,则DgScore显示相应成绩的学生名单。

代码如下:

Option Explicit

Dim SelectedSeries as Integer ′自定义变量

Dim Rs() as String ′提取记录集用的字符串数组

Private Sub Form_Load()

′设定DataGrid控件的数据源

urce=″AdScore″

′设定ADO控件的连接字串和初始的记录源,即显示内容

tString=″Provider=.3.51;Persist_Security

Info=False;Data Source=学生信息″

Source=″selet * from学生成绩order by成绩″

h

′预设好提取记录用的SQL语句

Rs(1)=″select* from学生成绩where成绩=″+Chr(34)+″优″+_Chr(34)+″order

by成绩″

Rs(2)=″select *from学生成绩where成绩=″+Chr(34)+″良″+_Chr(34)+″order

by成绩″

Rs(3)=″select * from学生成绩where成绩=″+Chr(34)+″中″+_Chr(34)+″

order by成绩″

Rs(4)=″select * from学生成绩where成绩=″+Chr(34)+″差″_Chr(34)+″order

by成绩″

End Sub

Private Sub McScore_SeriesSelected(Series as

_Integer,Cancel as Integer)

SelectedSeries=Series

End Sub

Private Sub McScore_PointSelected(Series

as_Integer,MouseFlags as

Integer,Cancel as Integer)

SelectedSeries=Series

End Sub

Private Sub McScore_Db1Click()

′改变ADO控件的记录源并刷新

Source=Rs(SeletedSeries)

h

Integer,MouseFlags as

as Integer,DataPoint

End Sub

(湖南 高文杰)