Private Sub updateCommand_Click()
    Dim txtSQL As String
    Dim MsgText As String
    Dim mrcc As ADODB.Recordset
    
    If mcclean Then
        MsgBox "请先修改班级信息", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    End If
    
    If Not Testtxt(txtClassno.Text) Then
        MsgBox "请输入班号!", vbOKOnly + vbExclamation, "警告"
        txtClassno.SetFocus
        Exit Sub
    End If
    
    If Not IsNumeric(Trim(txtClassno.Text)) Then
        MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
        txtClassno.SetFocus
    End If
    
        
    If Not Testtxt(comboGrade.Text) Then
        MsgBox "请选择年级!", vbOKOnly + vbExclamation, "警告"
        comboGrade.SetFocus
        
        Exit Sub
    End If
    
    If Not Testtxt(txtDirector.Text) Then
        MsgBox "请输入班主任姓名!", vbOKOnly + vbExclamation, "警告"
        txtDirector.SetFocus
        Exit Sub
    End If
    
    
    If Not Testtxt(txtClassroom.Text) Then
        MsgBox "请输入教室号码!", vbOKOnly + vbExclamation, "警告"
        txtClassroom.SetFocus
        Exit Sub
    End If
    
    mrc.Delete
    txtSQL = "select * from class_Info where class_No = '" & Trim(txtClassno.Text) & "'"
    Set mrcc = ExecuteSQL(txtSQL, MsgText)
    If mrcc.EOF = False Then
        MsgBox "班号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
        mrcc.Close
        txtClassno.SetFocus
    Else
        mrcc.Close '关闭连接
        
        mrc.AddNew
        mrc.Fields(0) = Trim(txtClassno.Text)
        mrc.Fields(1) = Trim(comboGrade.Text)
        mrc.Fields(2) = Trim(txtDirector.Text)
        mrc.Fields(3) = Trim(txtClassroom.Text)
        mrc.Update
        MsgBox "修改班级信息成功!", vbOKOnly + vbExclamation, "警告"
        
        mrc.Book = myBook
        Call viewData
        Frame2.Enabled = True
        firstCommand.Enabled = True
        previousCommand.Enabled = True
        nextCommand.Enabled = True
        lastCommand.Enabled = True
        
        txtClassno.Enabled = False
        comboGrade.Enabled = False
        txtDirector.Enabled = False
        txtClassroom.Enabled = False
                
        mcclean = True
    End If
End SubPublic Sub viewData()
    txtClassno.Text = mrc.Fields(0)
    comboGrade.Text = mrc.Fields(1)
    txtDirector.Text = mrc.Fields(2)
    txtClassroom.Text = mrc.Fields(3)
    
End Sub
这是更新过程的代码,更新了的内容不能更改后马上以新的数据显示出来!!!!求指教!!!!!!

解决方案 »

  1.   

    Private Sub updateCommand_Click()
      Dim txtSQL As String
      Dim MsgText As String
      Dim mrcc As ADODB.Recordset
       
      If mcclean Then
      MsgBox "请先修改班级信息", vbOKOnly + vbExclamation, "警告"
      Exit Sub
      End If
       
      If Not Testtxt(txtClassno.Text) Then
      MsgBox "请输入班号!", vbOKOnly + vbExclamation, "警告"
      txtClassno.SetFocus
      Exit Sub
      End If
       
      If Not IsNumeric(Trim(txtClassno.Text)) Then
      MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
      Exit Sub
      txtClassno.SetFocus
      End If
       
       
      If Not Testtxt(comboGrade.Text) Then
      MsgBox "请选择年级!", vbOKOnly + vbExclamation, "警告"
      comboGrade.SetFocus
       
      Exit Sub
      End If
       
      If Not Testtxt(txtDirector.Text) Then
      MsgBox "请输入班主任姓名!", vbOKOnly + vbExclamation, "警告"
      txtDirector.SetFocus
      Exit Sub
      End If
       
       
      If Not Testtxt(txtClassroom.Text) Then
      MsgBox "请输入教室号码!", vbOKOnly + vbExclamation, "警告"
      txtClassroom.SetFocus
      Exit Sub
      End If
       
      mrc.Delete
      txtSQL = "select * from class_Info where class_No = '" & Trim(txtClassno.Text) & "'"
      Set mrcc = ExecuteSQL(txtSQL, MsgText)
      If mrcc.EOF = False Then
      MsgBox "班号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
      mrcc.Close
      txtClassno.SetFocus
      Else
      mrcc.Close '关闭连接
       
      mrc.AddNew
      mrc.Fields(0) = Trim(txtClassno.Text)
      mrc.Fields(1) = Trim(comboGrade.Text)
      mrc.Fields(2) = Trim(txtDirector.Text)
      mrc.Fields(3) = Trim(txtClassroom.Text)
      mrc.Update
      MsgBox "修改班级信息成功!", vbOKOnly + vbExclamation, "警告"
       
      mrc.Book = myBook
      Call viewData
      Frame2.Enabled = True
      firstCommand.Enabled = True
      previousCommand.Enabled = True
      nextCommand.Enabled = True
      lastCommand.Enabled = True
       
      txtClassno.Enabled = False
      comboGrade.Enabled = False
      txtDirector.Enabled = False
      txtClassroom.Enabled = False
       
      mcclean = True
      End If
    End SubPublic Sub viewData()
      txtClassno.Text = mrc.Fields(0)
      comboGrade.Text = mrc.Fields(1)
      txtDirector.Text = mrc.Fields(2)
      txtClassroom.Text = mrc.Fields(3)
       
    End Sub注意红色部分,你的mrc不光光在最外围定义了一个全局的,在那个sub过程中还有个局部的,所以你那个viewdata里面用的还是全局的那个mrc。
    修改方法1:
    将Call viewData直接改成:
      txtClassno.Text = mrc.Fields(0)
      comboGrade.Text = mrc.Fields(1)
      txtDirector.Text = mrc.Fields(2)
      txtClassroom.Text = mrc.Fields(3)修改方法2:
    Call viewData修改成:
    Call viewData(mrc)过程
    Public Sub viewData()
      txtClassno.Text = mrc.Fields(0)
      comboGrade.Text = mrc.Fields(1)
      txtDirector.Text = mrc.Fields(2)
      txtClassroom.Text = mrc.Fields(3)
    End Sub
    修改成:
    Public Sub viewData(mrc)
      txtClassno.Text = mrc.Fields(0)
      comboGrade.Text = mrc.Fields(1)
      txtDirector.Text = mrc.Fields(2)
      txtClassroom.Text = mrc.Fields(3)
    End Sub