细说学生管理系统(二)

实现功能.

这部分让自己学到了很多技术上的东西,尤其是程序与数据库交互出现的问题,因为代码基本上都是重复的都是是"增删改查".下面说说自己遇到的问题.

问题一:

adLockOptimisticupdate、adLockBatchOptimisticupdatebatch

因为弄混了两者的区别,让自己开始的时候狠狠地纠结了一把。

问题二:

计算机生成了可选文字: Microso代V;sua】Ba'ic实时错误’91,:对象变里或with块变里未设置继续(c)}结束,}雨而刁

在敲学生信息管理系统时出现上述问题一般都是数据库连接有问题,大家可以重点检查与数据库连接有关的语句。提醒大家一点,向下面的过程中,一定要注意where后面的空格!

Private Sub cmdInquire_Click()
    Dim txtSQL As String
    Dim msgText As String
    Dim dd(4) As Boolean
    Dim objRs As ADODB.Recordset
    
    txtSQL = "select * from result_info where "                          '连接数据库
                                         '选择学号
    If Check1(0).Value Then
       If Trim(txtSID.Text) = "" Then
          MsgBox "学号不能为空,请输入学号!!!", vbOKOnly + vbExclamation, "警告"
          txtSID.SetFocus
          Exit Sub
        
       Else
          If Not IsNumeric(Trim(txtSID.Text)) Then
             MsgBox "请输入数字!!!", vbOKOnly + vbExclamation, "警告"
             Exit Sub
             txtSID.SetFocus
             txtSID.SelStart = 0
             txtSID.SelLength = Len(txtSID.Text)
           End If
           dd(0) = True
           txtSQL = txtSQL & "student_id= '" & Trim(txtSID.Text) & "'"
        End If
    End If

问题三:

计算机生成了可选文字: Micro'oftVlsualBasic实时错误’一2147217887(80040e21)':乡步。珍DB操作产生错误。如果可能,请检查每个。比DB状态值。没有工作被宪成。】结束卿{雨衰司帮助竺}

出现上述错误,主要是输入长度或数据类型与数据库的设定不一致。这样在将数据写入数据库时就会出现错误。避免这种错误的方法可以根据数据库的需要来显示用户输入的长度和格式。

比如:限制用户只能输入数字,最大输入长度为20.

Public Sub lmtLong(txt As String, n As Integer)   '限制输入长度
    If Len(Trim(txt)) >= n Then
       KeyAscii = 0
       MsgBox "最多输入" & n & "位!!!", vbExclamation + vbOKOnly, "警告"
      
    End If
   
End Sub
Public Sub lmtNumber(a As Integer)    '只能输入数字
   If (a >= 48 And a <= 57) Or a = 8 Then
      
Else
  a = 0
   MsgBox "请输入数字!!", vbOKOnly + vbExclamation, "警告"
    
End If
End Sub问题四:

计算机生成了可选文字: MIcro'o代VlsualBasic实时错误’3021':黔瓤矍尹利鼎聂。或者当前的记录已被删除,所结束汪)帮助以)

当数据库中没有记录时,再次载入就会出现这个问题,解决方法:提前进行判断,如果数据为空则提示添加数据。

Private Sub modifycourseMenu_Click()
    Dim txtSQL As String
    Dim msgText As String
    Dim objRs As ADODB.Recordset
    
    txtSQL = "select * from course_info "
    Set objRs = ExecuteSQL(txtSQL, msgText)
    If objRs.EOF And objRs.BOF Then
          MsgBox "数据为空,请先添加数据", vbOKOnly + vbExclamation, "警告"
       Exit Sub
    Else
     frmmodifycourseinfo.Show
     sbStatusBar.Panels(1) = frmmodifycourseinfo.Caption
    End If
End Sub

问题五:

计算机生成了可选文字: MicrosoftVi'ualBa'ic实时错误’一2147217906(8oo4oeoe)':书签无效。继续(C)}结束叫丽而刁帮助以,」

这个问题纠结了很久,使用书签时如果删除最后一条记录时就会报错。大家解决的方法也各不相同,我一开始采用的是:进行判断,如果是最后一条记录时则提醒然后删除并卸载窗体。

If str2 = vbOK Then
      If objRs.RecordCount = 1 Then
         objRs.Delete
         MsgBox "记录已经完全删除请添加信息!!", vbOKOnly + vbExclamation, "警告"
         Unload Me

      Else
       objRs.MoveNext
       If objRs.EOF Then
          objRs.MoveFirst
          myBookMark = objRs.Bookmark
          objRs.MoveLast
          objRs.Delete
          objRs.Bookmark = myBookMark
          Call viewData
      Else
         myBookMark = objRs.Bookmark
         objRs.Delete
         objRs.MovePrevious
         objRs.Bookmark = myBookMark
         Call viewData
'      End If
     End If
    Else
       objRs.Bookmark = myBookMark
       Call viewData
    End If

可是,如果数据库里的数据一开始只有两条时,则还是会出现问题4。现在我也没有解决,希望大家给点指点。

问题六:

计算机生成了可选文字: MIcro'o代VI'ualBasic实时错误’3704':对象关闭时,不允许操作。继续叫结束叫雨丽门

主要当对某个表进行操作时,如果这个表被关闭了,就会出现这个错误。

问题七:

当更新数据时是直接更新好还是先删除在写入的好?

上述问题都是在做学生管理系统时遇到的一些主要问题。当然问题肯定不止这些,其他的一些细节问题,我们将在下面文章中讲述。

你可能感兴趣的:(管理)