Private Sub Command1_Click()
Dim db As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim rs3 As ADODB.Recordset
Dim rs4 As ADODB.Recordset
Dim rs5 As ADODB.Recordset
Dim rs6 As ADODB.Recordset
Dim rs7 As ADODB.Recordset
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set rs3 = New ADODB.Recordset
Set rs4 = New ADODB.Recordset
Set rs5 = New ADODB.Recordset
Set rs6 = New ADODB.Recordset
Set rs7 = New ADODB.Recordset
db.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=奖学金;Data Source=."
db.Open
Dim no As String
Dim no1 As String
Dim n As Integer
Dim n1 As Integer
Dim Y As Integer
Dim X As Integer
Dim a As Integer
rs4.Open "select distinct 成绩表.学年度,成绩表.至学年度,成绩表.姓名,成绩表.学号,成绩表.班级 ,成绩表.考试成绩 ,附加德育分.德育分,附加德育分.附加分,体育分.体育分,课程信息表.学分 from 成绩表,课程信息表 ,专业字典 ,体育分 ,附加德育分,学年表 where 课程信息表.课程代码 =成绩表.课程代码 and 体育分.学号=成绩表.学号 and 附加德育分.学号=成绩表.学号 and 学年表.学年度= '" & Cobxnd.Text & "'and 成绩表.班级='" & Cobbj.Text & "' and 学年表.至学年度='" & Cobzxnd.Text & "'", db, adOpenStatic, adLockReadOnly
rs5.Open "select avg(考试成绩),学号 from 成绩表 where 学年度= '" & rs4.Fields("学年度") & "' and 至学年度= '" & rs4.Fields("至学年度") & "' group by 学号", db, adOpenStatic, adLockReadOnly
rs6.Open "select avg(体育分),学号 from 体育分 where 学年度= '" & rs4.Fields("学年度") & "' and 至学年度= '" & rs4.Fields("至学年度") & "' group by 学号", db, adOpenStatic, adLockReadOnly
rs7.Open "select sum(学分),学号 from 成绩表 where 学年度= '" & rs4.Fields("学年度") & "' and 至学年度= '" & rs4.Fields("至学年度") & "' group by 学号", db, adOpenStatic, adLockReadOnly
n = rs4.RecordCount
Set DataGrid1.DataSource = rs4
rs4.MoveFirst
no1 = rs4.Fields(0)
j = 0
For i = 1 To n
If rs4.EOF Then
MsgBox "评定结束", 48, "提示信息"
Else
If rs4.Fields("学号") = rs5.Fields("学号") And rs5.Fields("学号") = rs6.Fields("学号") And rs7.Fields("学号") = rs6.Fields("学号") Then
jxj.TextMatrix(i, 2) = rs4.Fields("学号")
Y = rs5.Fields(0)
jxj.TextMatrix(i, 4) = rs5.Fields(0) * 0.6
jxj.TextMatrix(i, 3) = rs4.Fields("班级")
jxj.TextMatrix(i, 5) = rs4.Fields("德育分") * 0.2
X = rs6.Fields(0)
jxj.TextMatrix(i, 6) = rs6.Fields(0) * 0.2
jxj.TextMatrix(i, 1) = rs4.Fields("姓名")
a = rs7.Fields(0)
jxj.TextMatrix(i, 9) = rs7.Fields(0)
jxj.TextMatrix(i, 7) = rs4.Fields("附加分")
jxj.TextMatrix(i, 8) = rs5.Fields(0) * 0.6 + rs6.Fields(0) * 0.2 + rs4.Fields("附加分") + rs4.Fields("德育分") * 0.2
rs4.MoveNext
rs5.MoveNext
rs6.MoveNext
rs7.MoveNext
End If
End If
Next i
End Sub
在运行时只显示一条记录信息,如何继续显示下条记录。
想了好久也不会,高手帮忙解决下,谢谢了。
Dim db As ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim rs3 As ADODB.Recordset
Dim rs4 As ADODB.Recordset
Dim rs5 As ADODB.Recordset
Dim rs6 As ADODB.Recordset
Dim rs7 As ADODB.Recordset
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set rs3 = New ADODB.Recordset
Set rs4 = New ADODB.Recordset
Set rs5 = New ADODB.Recordset
Set rs6 = New ADODB.Recordset
Set rs7 = New ADODB.Recordset
db.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=奖学金;Data Source=."
db.Open
Dim no As String
Dim no1 As String
Dim n As Integer
Dim n1 As Integer
Dim Y As Integer
Dim X As Integer
Dim a As Integer
rs4.Open "select distinct 成绩表.学年度,成绩表.至学年度,成绩表.姓名,成绩表.学号,成绩表.班级 ,成绩表.考试成绩 ,附加德育分.德育分,附加德育分.附加分,体育分.体育分,课程信息表.学分 from 成绩表,课程信息表 ,专业字典 ,体育分 ,附加德育分,学年表 where 课程信息表.课程代码 =成绩表.课程代码 and 体育分.学号=成绩表.学号 and 附加德育分.学号=成绩表.学号 and 学年表.学年度= '" & Cobxnd.Text & "'and 成绩表.班级='" & Cobbj.Text & "' and 学年表.至学年度='" & Cobzxnd.Text & "'", db, adOpenStatic, adLockReadOnly
rs5.Open "select avg(考试成绩),学号 from 成绩表 where 学年度= '" & rs4.Fields("学年度") & "' and 至学年度= '" & rs4.Fields("至学年度") & "' group by 学号", db, adOpenStatic, adLockReadOnly
rs6.Open "select avg(体育分),学号 from 体育分 where 学年度= '" & rs4.Fields("学年度") & "' and 至学年度= '" & rs4.Fields("至学年度") & "' group by 学号", db, adOpenStatic, adLockReadOnly
rs7.Open "select sum(学分),学号 from 成绩表 where 学年度= '" & rs4.Fields("学年度") & "' and 至学年度= '" & rs4.Fields("至学年度") & "' group by 学号", db, adOpenStatic, adLockReadOnly
n = rs4.RecordCount
Set DataGrid1.DataSource = rs4
rs4.MoveFirst
no1 = rs4.Fields(0)
j = 0
For i = 1 To n
If rs4.EOF Then
MsgBox "评定结束", 48, "提示信息"
Else
If rs4.Fields("学号") = rs5.Fields("学号") And rs5.Fields("学号") = rs6.Fields("学号") And rs7.Fields("学号") = rs6.Fields("学号") Then
jxj.TextMatrix(i, 2) = rs4.Fields("学号")
Y = rs5.Fields(0)
jxj.TextMatrix(i, 4) = rs5.Fields(0) * 0.6
jxj.TextMatrix(i, 3) = rs4.Fields("班级")
jxj.TextMatrix(i, 5) = rs4.Fields("德育分") * 0.2
X = rs6.Fields(0)
jxj.TextMatrix(i, 6) = rs6.Fields(0) * 0.2
jxj.TextMatrix(i, 1) = rs4.Fields("姓名")
a = rs7.Fields(0)
jxj.TextMatrix(i, 9) = rs7.Fields(0)
jxj.TextMatrix(i, 7) = rs4.Fields("附加分")
jxj.TextMatrix(i, 8) = rs5.Fields(0) * 0.6 + rs6.Fields(0) * 0.2 + rs4.Fields("附加分") + rs4.Fields("德育分") * 0.2
rs4.MoveNext
rs5.MoveNext
rs6.MoveNext
rs7.MoveNext
End If
End If
Next i
End Sub
在运行时只显示一条记录信息,如何继续显示下条记录。
想了好久也不会,高手帮忙解决下,谢谢了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货