在敲学生信息管理系统中遇到的问题及解决方法

不怕不知道,就怕不知道。

顾名思义,意义非同一般。前一句为不怕不知道问题的解决方法,后一句为就怕不知道没有问题。其实没有问题才是最大的问题。

几天时间就敲完了学生信息管理系统了,心里那个舒坦,差距缩小了,可谁知这只是一个骗局,就算是照着源码敲的一个字母也不错,那离你敲完还远着呢,这只是一个豆腐渣工程。主要原因有以下几点:

1、此系统有记录的时候可以使用,但是当没有记录时该怎么处理

2、删除记录时同样会报错,删除最后一条使记录为空后该怎么处理

3、修改记录中书签的使用

4、在不退出窗体时,修改信息时往往会没点一次修改就多加载一次,尤其是ComboBox该怎么处理

对这些问题,我简单答一下以供参考:

问题一:没有记录时应先添加

	'无记录时提示先添加 	    txtSQL = "select * from class_Info"
	    Set mrcc = ExecuteSQL(txtSQL, txtMsg)
	    If mrcc.BOF And mrcc.EOF Then
	        MsgBox "班级为空,请先添加班级信息"
	        Unload frmClassChange
	    Else
	        frmClassChange.Show
	    End If

问题二:分情况,记录数多于一条和记录数等于一条时

	CourseDelete = MsgBox("确实要删除记录吗?", vbYesNo, "删除课程信息")
	    If CourseDelete = vbYes Then
	        txtSQL = "select * from course_info"
	        Set mrcc = ExecuteSQL(txtSQL, txtMsg)
	        '记录等于一条时 	        If mrcc.RecordCount = 1 Then
	            mrcc.Delete
	            txtCourseID.Text = ""
	            txtCourseName.Text = ""
	            txtCourseDes.Text = ""
	            myCombo.Text = ""
	            MsgBox "没有记录,请先添加课程信息"
	            mrcc.Close
	            Unload Me
	        Else
	            '多于一条时 	            mrcc.Close
	            myBookMark = mrc.Bookmark
	            mrc.MoveNext
	            If mrc.EOF Then
	                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
	        End If
	    End If

问题三:修改信息后最想看到的是信息是否已经修改完毕,故而修改完后显示的还是这条信息,此时书签就起到至关重要的作用,解决方法:

	在EditChange_Click事件中添加书签
	myBookMark = mrc.Bookmark
	修改完后将其还原
	mrc.Bookmark = myBookMark
	Call ViewData

问题四:在Form_load里面加载,首先将记录保存在变量中,在清空combobox,在添加保存的变量,最后显示出来

		intString = ComboClassNo.Text
	    ComboClassNo.Clear
	    ComboClassNo.AddItem intString
	    txtSQL = "select * from class_info"
	    Set mrcc = ExecuteSQL(txtSQL, txtMsg)
	    While (Not mrcc.EOF)
	        If mrcc.Fields("class_No") <> intString Then
	            ComboClassNo.AddItem mrcc.Fields("class_No")
	            mrcc.MoveNext
	        End If
	    Wend
	    ComboClassNo.Text = ComboClassNo.List(0)

你可能感兴趣的:(sql,数据库,源代码,vb,combobox)