关于MSChart控件的问题,如果弄通了,还有100分,在线等候

上官云峰 2003-10-19 03:32:43
下面的代码不好使,可能是VB5.0版本,我要用VB6.0版本帮忙改改或者给一个能运行的例子(最好详细些),帮帮忙吧,我快跳楼了!!!!!!!!!!

设数据库名称为“学生信息”,有一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控件的数据源
  DgScore.DataSource=″AdScore″
  ′设定ADO控件的连接字串和初始的记录源,即显示内容
  AdScore.ConnectString=″Provider=Microsoft.OLEDB.3.51;Persist_Security Info=False;Data Source=学生信息″
  AdScore.RecordSource=″selet * from学生成绩order by成绩″
  AdScore.Refresh
  ′预设好提取记录用的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,MouseFlags as _Integer,Cancel as Integer)
SelectedSeries=Series
  End Sub
  Private Sub McScore_PointSelected(Series as Integer,DataPoint as_Integer,MouseFlags as
Integer,Cancel as Integer)
  SelectedSeries=Series
  End Sub
  Private Sub McScore_Db1Click()
  ′改变ADO控件的记录源并刷新
  Adoc1.RecordSource=Rs(SeletedSeries)
  Adoc1.Refresh
  End Sub
...全文
42 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
flc 2003-10-20
  • 打赏
  • 举报
回复
这是一个例子
flc 2003-10-20
  • 打赏
  • 举报
回复


Option Explicit
Private Values() As Variant
Private NumPoints As Integer

Private Sub LoadData()
Dim db As Database
Dim qdef As QueryDef
Dim rs As Recordset
Dim dbname As String
Dim i As Integer

' 打开数据库
dbname = App.Path
If Right$(dbname, 1) <> "\" Then dbname = dbname & "\"
dbname = dbname & "data.mdb"
Set db = OpenDatabase(dbname)

' 获得数据库记录
Set qdef = db.CreateQueryDef("", _
"SELECT 产品类别, 销售额 FROM 销售额")
Set rs = qdef.OpenRecordset(dbOpenSnapshot)

' 查看数据库中记录数
rs.MoveLast
NumPoints = rs.RecordCount
ReDim Values(1 To NumPoints, 1 To 2)

' 加载数据
rs.MoveFirst
For i = 1 To NumPoints
Values(i, 1) = rs!产品类别
Values(i, 2) = rs!销售额 / 10000
rs.MoveNext
Next i
rs.Close
db.Close
End Sub

Private Sub Form_Load()
With MSChart1
.Top = 0
.Left = 0
.Width = Me.ScaleWidth
.Height = Me.ScaleHeight
End With
' 读取数据
LoadData
' 使用MSChart控件显示数据
MSChart1.ChartData = Values
End Sub
上官云峰 2003-10-20
  • 打赏
  • 举报
回复
怎么没人回答?

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧