VB高手请进

[复制链接]
查看11 | 回复1 | 2008-5-29 12:13:46 | 显示全部楼层 |阅读模式
Dim cn As New adodb.Connection
Private Sub Command1_Click()
Dim rst1 As New adodb.Recordset
Dim a(40) As Integer
Dim b(40) As Double
Dim i%, j%, k%, count1%, r%, temp1%, temp2#
rst1.Open "select distinct 学号 from 成绩表", cn
i = 0
Do While Not rst1.EOF
a(i) = rst1("学号")
b(i) = average(a(i))
i = i + 1
rst1.MoveNext
Loop
count1 = i
Set rst1 = Nothing
For i = 0 To count1 - 2
k = i
For j = i + 1 To count1 - 1
If b(j) > b(k) Then k = j
Next j
temp1 = a(i): a(i) = a(k): a(k) = temp1
temp2 = b(i): b(i) = b(k): b(k) = temp2
Next i
r = 1
For i = 0 To count1 - 1
rst1.Open "select 姓名 from 学生表 where 学号=" & a(i), cn
With MSFlexGrid1
.Row = r
.Col = 0: .Text = a(i)
.Col = 1: .Text = rst1("姓名")
.Col = 2: .Text = Format$(b(i), "##.##")
.Col = 3: .Text = r
End With
r = r + 1
rst1.Close
Next i
Set rst1 = Nothing
End Sub
Private Sub Form_Load()
cn.ConnectionString = "Provider=Microsoft.jet.oledb.4.0; data source=" & App.Path & "\学生成绩管理.mdb"
cn.Open
With MSFlexGrid1
.Row = 0
.Col = 0: .Text = "学号"
.Col = 1: .Text = "姓名"
.Col = 2: .Text = "平均分"
.Col = 3: .Text = "名次"
End With
End Sub
当我按查询按钮时,就是中间那段代码,为什么在MSFLEXGRID1中只显示一行数据,并提示row数字无效,这是什么原因啊,我数据库里面有多条数据啊!

回复

使用道具 举报

千问 | 2008-5-29 12:13:46 | 显示全部楼层
在 rst1.Open "select 姓名 from 学生表 where 学号=" & a(i), cn 下面加上MSFlexGrid1.AddItem (Empty)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行