我是新手,因为最近要用到vb和数据库的连接所以才开始学习,以下程序出了点问题帮我调试一下吧如果还有什么不妥当的地方也帮我指出来吧。感激不尽。
刚才那个没加注释,所以我又发了一遍
Dim cn As New ADODB.Connection
Dim rsstudent As New ADODB.Recordset
Dim rsclass As New ADODB.Recordset'移到下一个记录 
Private Sub Command1_Click()
If Not EOF Then
   rsstudent.MoveNext
For i = 0 To 2
Text(i).Text = rsstudent.Fields(i)
Next i
rsclass.Open "select * from 班级信息表 where rsclass.Fields(0)=rsstudent.Fields(2)"
For i = 3 To 4
Text(i).Text = rsclass.Fields(i - 3)
Next i
End Sub'添加新记录
Private Sub Command2_Click()
For i = BOF To EOF
If Text(3).Text! = rsclass.Fields(0) Then
   rsclass.AddNew
End If
Next i
rsclass.UpdateFor i = BOF To EOF
If Text(0).Text! = rsstudent.Fields(0) Then
   rsstudent.AddNew
End If
Next i
rsstudent.Update
End Sub
'删除记录
Private Sub Command3_Click()
If rsstudent.RecordCount > 0 Then
   rsstudent.Delete.adAffectCurrent
   rsstudent.Update
End If
For i = 0 To 4
 Text(i).Text = " "
Next i
Else: MsgBox "数据库已空"
End SubPrivate Sub Form_Load()
Set cn = New ADODB.Connection
cn.Open "provider=microsoft.jet.oledb.4.0;data source=D:\我的 文件家\vb6mini\学生班级基本信息库.mdb;"
rsstudent.Open "select * from 学生信息表",rsstudent
rsclass.Open "select * from 班级信息表 where rsstudent.所在班级号=rsclass.班级号"
displaystudent
End SubPublic Sub displaystudent()
If rsstudent.RecordCount > 0 Then
   For i = 0 To 2
   Text(i).Text = rsstudent.Fields(i)
End If
If rsclass.RecordCount > 0 Then
   For i = 3 To 4
   Text(i).Text = rsclass.Fields(i - 3)
End If
   

解决方案 »

  1.   

    Dim cn As New ADODB.Connection已经这样定义过了,就不用
    Set cn = New ADODB.Connection记录集打开时应该加连接.如:rsclass.open sql,cnn,3,2最好不要设置记录集的全局变量
    记录集打开后记得要关闭.
    应在form_unload事件中断开连接
    set rsstudent=nothing
    set rsclass=nothing
    set cn=nothing建议LZ找一个写得较好的数据库代码看看.
      

  2.   

    For i = BOF To EOF '这样也行啊!
      

  3.   

    Private Sub Command1_Click()
    If Not EOF Then
       rsstudent.MoveNext
    For i = 0 To 2
    Text(i).Text = rsstudent.Fields(i)
    Next i
    rsclass.Open "select * from 班级信息表 where rsclass.Fields(0)=rsstudent.Fields(2)"
    For i = 3 To 4
    Text(i).Text = rsclass.Fields(i - 3)
    Next i
    End Sub
    少了一个END IF
    For i = BOF To EOF 
    这样应该不行吧!
      

  4.   

    rsstudent.Open "select * from 学生信息表", cn, 1, 3
    rsclass.Open "select * from 班级信息表 where rsstudent.所在班级号=rsclass.班级号", cn, 1, 3
    上面这句话有错吗
    上面这句话的用意是从表rsstudent中找到所有的学生,然后再从rsclass
    中找到与其相匹配的班级的内容
      

  5.   

    select * from 班级信息表 where rsstudent.所在班级号=rsclass.班级号这条语句不正确吧,最好把三张表名也加入select中和from 中
      

  6.   

    select * from 班级信息表 where 学生信息表.所在班级号=班级信息表.班级号
    这样对了吗