首页 > 代码库 > 学生信息管理系统(五)——增、删、改、查

学生信息管理系统(五)——增、删、改、查

学生信息管理系统就是一套套的增、删、改、查。
下面我们就来分别分析一下。
一、Add  添加一条记录,以frmAddclassinfo窗体为例)

首先,确保各个文本框不能为空。
用模块中的自定义函数Testtxt来检测文本框是否为空,若为空,弹出警告,文本框获取焦点。
例如:班号不能为空。
    
  If Not Testtxt(cboClassNo.Text) Then
        MsgBox "请输入班号!", vbOKOnly + vbExclamation, "警告"
        cboClassNo.SetFocus
        cboClassNo.Text = ""
        Exit Sub
    End If

其次,添加信息不能重复。
 
  txtSQL = "select * from class_Info where class_No='" & Trim(cboClassNo.Text) & "'"
  Set mrc = ExecuteSQL(txtSQL, MsgText)
  If  Not (mrc.EOF And mrc.BOF) Then                               '确保输入的班号不存在
        MsgBox "请重新输入班号!", vbOKOnly + vbExclamation, "警告"
        cboClassNo.SetFocus
        mrc.Close
  Else
  ……

最后,添加记录成功。

        txtSQL = "select * from class_Info"
        Set mrc = ExecuteSQL(txtSQL, MsgText)
        mrc.AddNew
        mrc.Fields(0) = Trim(cboClassNo.Text)
        mrc.Fields(1) = Trim(cboGrade.Text)
        mrc.Fields(2) = Trim(txtDirector.Text)
        mrc.Fields(3) = Trim(cboClassNo.Text)
        mrc.Update
        mrc.Close
        Me.Hide
        MsgBox "班级信息添加成功!", vbOKOnly + vbExclamation, "添加班级信息"
  End If
        
二、Delete删除一条记录这里以frmModifyclassinfo为例。)

用一条MsgBox语句来决定是否删除记录。
str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
OK,删除

If str2$ = vbOK Then
<span style="white-space:pre">	</span>mrc.MoveNext
        If mrc.EOF Then          
        <span style="white-space:pre">	</span>mrc.MoveFirst
                myBookmark = mrc.Bookmark
                mrc.MoveLast
                mrc.Delete
                mrc.Bookmark = myBookmark
                Call viewData
        Else
                myBookmark = mrc.Bookmark
                mrc.MovePrevious
                mrc.Delete         
                mrc.Bookmark = myBookmark
                Call viewData
        End If

cancel,取消删除

<pre name="code" class="vb">Else
	mrc.Bookmark=mybookmark
	Call viewData
End If
这里的viewData函数是用来把临时表中的当前记录赋值给各个文本框
cboClassNo.Text = mrc.Fields(0)
cboGrade.Text = mrc.Fields(1)
txtDirector.Text = mrc.Fields(2)
txtClassroom.Text = mrc.Fields(3)

三、Modify修改一条记录,这里以frmModifyclassinfo为例。)
首先,点击修改记录时,各文本框可用,查看信息按钮不可用
<span style="font-size:18px;">cboClassNo.Enabled=True
cboGrade.Enabled=True
txtDirector.Enabled=True
txtClassroom.Enabled=True
cmdFirst.Enabled=False
cmdPrevious.Enabled=False
cmdNext.Enabled=False
cmdLast.Enabled=False</span>

其次,同添加记录一样,各文本框不能为空,信息不能重复。修改记录成功
  
<span style="font-size:18px;">mrc.AddNew
mrc.Fields(0) = Trim(comboClassNo.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.Bookmark = mybookmark
Call viewData</span>

最后,各文本框不可用,查看信息按钮可用。

<span style="font-size:18px;">cboClassNo.Enabled=False
cboGrade.Enabled=False
txtDirector.Enabled=False
txtClassroom.Enabled=False
cmdFirst.Enabled=True
cmdPrevious.Enabled=True
cmdNext.Enabled=True
cmdLast.Enabled=True</span>

四、Inquire查询记录。)
这里我们有两种查询方式:

(1)直接点击第一条,最后一条,上一条,下一条按钮查询记录。

<span style="font-size:18px;">Private Sub cmdFirst_Click()                                    '记录集移动到第一条
    mrc.MoveFirst
    Call viewData
End Sub

Private Sub cmdLast_Click()                                     '记录集移动到最后一条
    mrc.MoveLast
    Call viewData
End Sub
 
Private Sub cmdNext_Click()                                     '记录集移动到下一条
    mrc.MoveNext
    If mrc.EOF Then
        mrc.MoveFirst
    End If
    Call viewData
End Sub
 
Private Sub cmdPrevious_Click()                                 '记录集移动到上一条
    mrc.MovePrevious
    If mrc.BOF Then
        mrc.MoveLast
    End If
   Call viewData
End Sub</span>

此查询方法适合于查询记录少的,单个表的查询。

(2)按条件查找想要的数据,并在MSHFlexGrid控件中按顺序显示。

此查询方法适合于查询记录比较多的,表和表之间有联系的查询。按条件查询,并将查询结果排序。