Private Sub Command1_Click(Index As Integer)
Select Case (Index)
    Case "0"
        Dim InputValue As Long
        InputValue = InputBox("请输入新用户名", "输入用户名")
        RS.Fields("操作员名称") = InputValue
    Case "1"
    Case "2"
    Case "3"
        Unload Me
End Select
End Sub
Private Sub Form_Load()
    Call add
    Set list.DataSource = RS
    
    While Not RS.EOF
    list.AddItem (RS.Fields("操作员名称"))
    RS.MoveNext
    Wend
End Sub总是报错,说我的EOF必须为真...少了数据??...我的整个程序到处都有这一类的问题..如何解决呢?
Const T As Integer = 3Private Sub Command1_Click()
Static Max As Integer
    Max = Max + 1
    If Max >= T Then
    MsgBox "超出登录次数,请与系统管理员联系!!!", vbQuestion + vbOKOnly, "登录失败"
    End
End If
' "select * from qxsz where 操作员名称"
If Combo1.Text <> Empty And Text2.Text = Trim(RS.Fields("密码")) Then
    MDIMenu.cai11.Enabled = RS.Fields("登录用户管理")
    MDIMenu.cai12.Enabled = RS.Fields("权限管理")
    MDIMenu.cai26.Enabled = RS.Fields("人事提醒")
    MDIMenu.cai21.Enabled = RS.Fields("人事档案")
    MDIMenu.cai22.Enabled = RS.Fields("人事调动")
    MDIMenu.cai23.Enabled = RS.Fields("奖惩管理")
    MDIMenu.cai24.Enabled = RS.Fields("考勤管理")
    MDIMenu.cai25.Enabled = RS.Fields("档案导入")
    MDIMenu.cai31.Enabled = RS.Fields("工资管理")
    MDIMenu.cai32.Enabled = RS.Fields("工资发放")
    MDIMenu.Show
    Unload Me
    Call discon
Else
    MsgBox "密码错误,请与管理员联系!!", vbQuestion + vbOKOnly, "密码错误"
    Text2.Text = ""
    Text2.SetFocus
End If
End SubPrivate Sub Command2_Click()
    End
End SubPrivate Sub Form_Load()
    Call add
    Set Combo1.DataSource = RS
    
    While Not RS.EOF
    Combo1.AddItem (RS.Fields("操作员名称"))
    RS.MoveNext
Wend
End Sub
这是登录窗口的问题...和上面的一样的.

解决方案 »

  1.   

    Private Sub Form_Load()
        dim i as long
        Call add
        for i=1 to rs.recordcount
            list.additem rs!操作员名称 & ""
            rs.movenext
        next i
    End Sub
      

  2.   

    第一个程序错误的地方在:        RS.Fields("操作员名称") = InputValue第二个程序错误的地方在:If Combo1.Text <> Empty And Text2.Text = Trim(RS.Fields("密码")) Then
    ....报的错误是3021:EOF或BOF中有一个是'真',或者当前记录已被删除,所需的操作要求一个当前的记录.请大家帮帮忙~~谢谢了.
      

  3.   

    出错语句是停在list.AddItem (RS.Fields("操作员名称"))处吗?还是停在Set list.DataSource = RS处?如果是在Set list.DataSource = RS处,把它改成:if not rs.eof then
       Set Combo1.DataSource = RS
        
        While Not RS.EOF
        Combo1.AddItem (RS.Fields("操作员名称"))
        RS.MoveNext
       wend
    end if试试看.
      

  4.   

    加上这句:rs.cursorlocation=aduseclient
    Private Sub Form_Load()
        Call add
        Set list.DataSource = RS
        if rs.state=1 then
        rs.movefirst
        While Not RS.EOF
        list.AddItem (RS.Fields("操作员名称"))
        RS.MoveNext
        Wend
    end if
    End Sub
      

  5.   

    在Form_Load()中加上一句
    rs.refresh
      

  6.   

    Private Sub Form_Load()
        Call add
        '去掉Set list.DataSource = RS
        
        While Not RS.EOF
        list.AddItem (RS.Fields("操作员名称"))
        RS.MoveNext
        Wend
    End Sub
    你最好跟踪调试
      

  7.   

    '去掉Set list.DataSource = RS
    可以执行...但是还是同样错误...99我..
      

  8.   

    Private Sub Form_Load()
        Call add
        Set list.DataSource = RS
        
        While Not RS.EOF
        list.AddItem (RS.Fields("操作员名称"))
        RS.MoveNext
        Wend
    End Sub
    把你的RS 记录指针移到了EOF位置,你再对其取值或附值就会出EOF或BOF中有一个是'真',或者当前记录已被删除,所需的操作要求一个当前的记录的错。
    LIST控件绑定后Click事件不能移动记录指针的。能解决这个问题就没了。
      

  9.   

    Private Sub Form_Load()
        Call add
        Set list.DataSource = RS
        
        While Not RS.EOF
        list.AddItem (RS.Fields("操作员名称"))
        RS.MoveNext
        Wend
    End Sub//////////////
    Set list.DataSource = RS
    你这是绑定,然后下边还手工往里添加代码,这是为什么!?~~~~~~~~~~~Private Sub Form_Load()
        Call add '不知道这句是干什么的!?
        
        RS.MoveFirst
        While Not RS.EOF
            list.AddItem (RS.Fields("操作员名称"))
        RS.MoveNext
        Wend
    End Sub这样试一下
      

  10.   

    rs.cursorlocation=aduseclient
    rs.open sql,con,1,1
    试试?
      

  11.   

    我不明白,在你所有Form_Load()和Command1_Click事件中都没有连接数据库和打开记录集的代码。