轻松理解—“EOF”和“BOF”

xiaoxiao2021-02-28  44

EOF和BOF搞什么鬼?

     或许敲学生项目的小伙伴们,在进行的过程中会遇到一个比较棘手的问题,辣么就是标题这个东东,究竟会报什么错呢?我们一起来了解一下-      当初我遇到这个问题的时候,完全懵逼,一看很多东西都不是很理解,不过多亏了连康的万能办法-On Error Resume next(万能办法) ,这个问题被暂时压制了,虽然有些费事,终究是解决了,这不学生项目搞定了,只剩下这个问题了,辣么我就搜集资料研究一下吧,不研究还好,一研究竟然直接解决了,feel 爽!      但是这里我想先提及其中会遇到的知识点,不知道大家还有没有印象呢?具体是做什么的请各位查看一下资料 辣么只要我们把这个思路整理好了后,下面就方便写代码了,之前在网上搜寻的资料逻辑没有问题,不过他思考的还是不够全面的,以下是我做的一些代码整合和标注,大家看看还有没有值得优化的地方呢 这个是关于“ 删除记录 ”的按钮代码,其中涉及到的“ 几种情况 ”已经注释到了代码里面了。 Private Sub deleteCommand_Click() If mrc.EOF And mrc.BOF Then MsgBox "表中未添加任何数据", vbOKOnly + vbExclamation, "警告" Frame2.Enabled = False Frame1.Enabled = False txtCourseno.Enabled = False txtCoursename.Enabled = False comboCoursetype.Enabled = False txtcoursedes.Enabled = False Else myBookmark = mrc.Bookmark '表中必须有数据 str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录") If str2$ = vbOK Then mrc.MoveNext '先执行next If mrc.EOF Then mrc.MovePrevious If mrc.BOF Then '因为一开始就判断表中是否含有数据,此处不需要代码执行 Else '删除的是最后一条记录(下次从第一个开始)的处理和有且仅有一条记录的情况--两种情况 mrc.MovePrevious If mrc.BOF Then mrc.MoveNext myBookmark = mrc.Bookmark mrc.Delete MsgBox "最后一条记录已经删除!", vbOKOnly + vbExclamation, "警告" For Each ctrl In Me.Controls If TypeOf ctrl Is TextBox Then ctrl.Text = "" End If Next For Each ctrl In Me.Controls If TypeOf ctrl Is ComboBox Then ctrl.Text = "" End If Next Frame2.Enabled = False Frame1.Enabled = False txtCourseno.Enabled = False txtCoursename.Enabled = False comboCoursetype.Enabled = False txtcoursedes.Enabled = False mrc.Bookmark = myBookmark Else myBookmark = mrc.Bookmark mrc.MoveLast mrc.Delete mrc.Bookmark = myBookmark Call viewData End If End If Else myBookmark = mrc.Bookmark '删除第一条记录和中间位置记录-两种情况 mrc.MovePrevious mrc.Delete mrc.Bookmark = myBookmark Call viewData End If Else mrc.Bookmark = myBookmark '不删除的处理 Call viewData End If End If End Sub      不知道您的思路是否有些清晰了呢,其实做这个过程最重要的就是需要把其中的各种情况都考虑清楚,只要这样才方便你整理代码,本以为昨天调试成功了呢,结果今天调试,缺少一种情况,然后又死了一片脑细胞,哎!!! 然后根据我自己的意愿,我又优化了窗体加载load的代码:也许会对各位有帮助吧,不妨来瞧瞧,免费的... Private Sub Form_Load() Dim txtSQL As String Dim MsgText As String Unload FormNow Set FormNow = Me '控件不可编辑 txtCourseno.Enabled = False txtCoursename.Enabled = False comboCoursetype.Enabled = False txtcoursedes.Enabled = False txtSQL = "select * from course_Info " '执行查询操作 Set mrc = ExecuteSQL(txtSQL, MsgText) '得到student表,并显示出来 'select得到的临时表,游标指向尾记录,在Access中指向第一条 If mrc.EOF And mrc.BOF Then MsgBox "表中未添加任何数据", vbOKOnly + vbExclamation, "警告" Frame2.Enabled = False Frame1.Enabled = False txtCourseno.Enabled = False txtCoursename.Enabled = False comboCoursetype.Enabled = False txtcoursedes.Enabled = False Else mrc.MoveFirst '显示数据 Call viewData '记下当前记录的位置 mcbookmark = mrc.Bookmark '做标记 mcclean = True End If End Sub     虽然纠错的过程稍微艰辛些,但是想想还是值了,尤其是思考的过程和实现的喜悦感,博客写到这里,学生项目也算是结束了,剩下的就是一些不入流的优化了,我们下一个项目再见。
转载请注明原文地址: https://www.6miu.com/read-39032.html

最新回复(0)