vb连接SQL后,对记录集的操作总出有关问题

vb连接SQL后,对记录集的操作总出问题!
create   database   sky
go
use   sky
create   table   studentinfo(学号   nchar(12)   not   null   primary   key,姓名   nchar(4)   not   null,性别   nchar(1),年龄   int   not   null,系别   nchar(6),民族   nchar(4)   not   null,电话   nchar(11))
create   table   adminfo(用户   nchar(8)   not   null,密码   nchar(20)   not   null)
insert   into   adminfo   values( 'admin ', '666666 ')   /*管理员账户,用户名和密码可自己修改*/

这是我连接所需的数据库和表

然后我在VB中,定义了一个模块用来连接SQL,代码如下:
Public   conn   As   New   ADODB.Connection
Public   rs   As   New   ADODB.Recordset
Sub   main()
        On   Error   GoTo   ON_ERROR
        '连接SQL数据库
myerr:
        strServername   =   InputBox( "输入SQL   SERVER服务器名: ",   "学生信息管理系统 ",   "CEEABA9546A14E3 ")
        conn.ConnectionString   =   "Driver={sql   server};server= "   &   strServername   &   ";uid=sa;pwd=;database=sky "
        conn.ConnectionTimeout   =   30
        conn.Open
        frmMain.Show
        Err.Number   =   0
ON_ERROR:
        If   Err.Number   =   -2147467259   Then
                MsgBox   "找不到此服务器,请重新配置或查看服务器是否已经启动. ",   ,   "学生信息管理系统 "
                GoTo   myerr
        End   If
End   Sub

在frmMain中我画了4个按扭,分别实现第一条,上一条,下一条,最后一条.

在Load事件中我想打记录集
strSql   =   "select   *   from   studentinfo "
        rs.CursorLocation   =   adUseClient
        rs.Open   strSql,   conn,   adOpenStatic,   adLockReadOnly,   adCmdText

可是我点4个按扭操作时,总是出现怪异的事,有时点下一条没反应,但根本还没指向结尾,请大家给出正确的打开记录集和4个按扭的代码.
保证点按扭时实现的结果要与按扭标题一样.

谢谢




------解决方案--------------------
给你上一个的代码:
Private Sub up_Click()
If Ado1.Recordset.RecordCount <> 0 Then
Ado1.Recordset.MovePrevious
If Ado1.Recordset.BOF Then
Ado1.Recordset.MoveLast
End If
Text1.Text = Ado1.Recordset.Fields(0).Value
Text2.Text = Ado1.Recordset.Fields(1).Value
Combo1.Text = Ado1.Recordset.Fields(2).Value
Text4.Text = Ado1.Recordset.Fields(3).Value
Combo2.Text = Ado1.Recordset.Fields(4).Value
Text6.Text = Ado1.Recordset.Fields(6).Value
DTP1.Value = Ado1.Recordset.Fields(5).Value
Else
MsgBox "没有学生信息 ", vbInformation + vbOKOnly, "系统提示 "
End If

End Sub
------解决方案--------------------
rs.movefrist
rs.moveNext
rs.move Number
------解决方案--------------------
If NOT ( Ado1.Recordset.Eof or Ado1.Recordset.Bof) Then