學生資訊管理系統(二)刪除資訊
1.先分析下刪除的過程。
假設現在已經新增了記錄,3個記錄.當前顯示第一個記錄時,刪除.指標向下移動顯示第二個記錄。第二個同理。但當前顯示第三個記錄時,刪除第三個,指標指向EOF,這不是是我們想要的,我們要的是刪除第三個記錄後,顯示第一個記錄。
圖1解:
程式碼如下:
程式碼(1)
Private Sub deleteCommand_Click() myBookmark = mrc.Bookmark '對當前顯示的記錄作為標籤 str2$ = MsgBox("是否刪除當前記錄?", vbOKCancel, "刪除當前記錄") '單擊刪除按鈕時彈出對話方塊提示是否刪除當前記錄 If str2$ = vbOK Then '如果刪除當前記錄 mrc.MoveNext '記錄指標指向下一個記錄 If mrc.EOF Then '如果EOF為真則說明剛開始顯示的記錄是記錄集中最後一個記錄 mrc.MoveFirst '記錄指標指向第一個記錄 myBookmark = mrc.Bookmark '給第一個記錄做個標籤 mrc.MoveLast '記錄指標指向最後一個記錄(也是是當前顯示的記錄) mrc.Delete '刪除最後一個記錄 mrc.Bookmark = myBookmark '顯示剛才座標籤的記錄(第一條記錄) Call viewData '呼叫函式顯示刪除後的記錄 Else '如果剛開始顯示的不是最後一個記錄, myBookmark = mrc.Bookmark '給當前記錄作標籤(即mrc.movenext) mrc.MovePrevious '記錄指標指向上一個記錄(剛開始顯示的記錄) mrc.Delete '刪除上一個記錄 mrc.Bookmark = myBookmark ' 顯示剛才做的標籤,顯示記錄 Call viewData '呼叫函式顯示刪除後的記錄 End If
Else '如果不刪除記錄 mrc.Bookmark = myBookmark '顯示最開始做的標記記錄 Call viewData '呼叫函式顯示。 End If End Sub
2.刪除記錄時出現的錯誤。
2.1單擊修改班級資訊時,因為資料庫中沒有記錄而出現的錯誤
圖2:
解決辦法:
在修改班級資訊窗體的載入過程中新增如下語句:
程式碼(2)
txtSQL = "select * from class_Info "
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = False Then
mrc.MoveFirst
Call viewData
myBookmark = mrc.Bookmark
Else
MsgBox "沒有紀錄!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
當資料庫中沒有記錄時,會彈出提示框顯示“沒有記錄”
但修改班級資訊的窗體還是會載入,已經顯示沒有記錄了載入了窗體也沒有用,我想單擊提示框中的“確定”按鈕後直接退出該窗體所以在
MsgBox "沒有紀錄!", vbOKOnly + vbExclamation, "警告"下新增了
Unload Me 但是有出現了新的錯誤
圖3:
因為在主選單中單擊修改班級資訊按鈕時載入窗體,必須的先載入完之後在進行對窗體的操作,後來想在主窗體中進行設定使查詢到資料庫中沒有記錄後不載入窗體,但沒有成功,待解決。
2.2當開啟窗體進行刪除操作時,當刪除最後一個記錄時也會出現圖1顯示的錯誤。
對原有的程式碼進行了修改 對已經註釋的程式碼不在重複註釋,
程式碼如下:
程式碼(3):
Private Sub deleteCommand_Click()
mybookmark = mrc.Bookmark
str2$ = MsgBox("是否刪除當前記錄?", vbOKCancel, "刪除當前記錄")
If str2$ = vbOK Then
mrc.MoveNext
If mrc.EOF Then
mrc.MoveFirst
If mrc.RecordCount = 1 Then '如果記錄集中只有一個記錄(即當前要被刪除的記錄)
mrc.Delete '刪除記錄
MsgBox "沒有記錄", vbOKOnly + vbExclamation, "警告" '彈出顯示框顯示沒有記錄
Unload Me '解除安裝該窗體
Exit Sub
Else '如果不是最後一個記錄 其他程式碼的功能跟已經註釋的相同
mybookmark = mrc.Bookmark
mrc.MoveLast
mrc.Delete
mrc.Bookmark = mybookmark
Call viewData
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 Sub
3.在刪除記錄中不適用標籤。
程式碼如下:
程式碼(4)
Private Sub deleteCommand_Click()
str2$ = MsgBox("是否刪除當前記錄?", vbOKCancel, "刪除當前記錄")
If str2$ = vbOK Then
mrc.Delete
mrc.MoveNext
If mrc.RecordCount = 0 Then
MsgBox "沒有記錄", vbOKOnly + vbExclamation, "警告"
Unload Me
Exit Sub
Else
If mrc.EOF Then
mrc.MoveFirst
Call viewData
Else
Call viewData
End If
End If
End If
End Sub
相比較程式碼(4)更簡潔,刪除記錄說刪就刪。先刪除當前的記錄然後在找下個記錄,有就顯示,沒有就顯示沒有記錄
程式碼(3)先找下一個記錄做個標籤,然後在回來把當前的記錄刪掉,在顯示作標籤的記錄。
4.個人感受
在敲刪除記錄的程式碼時 我是仿照程式碼(1)來進行的。我們平常的思維是先新增記錄然後在對記錄進行修改,當沒有新增記錄時,就不會去開啟修改記錄的窗體,但無意時開啟了,問題就出來了。這就是平時我們考慮問題的不周到造成的,不過問題出現了那我們就解決問題。
相關文章
- 學生選題資訊管理系統
- java+SQL做學生資訊管理系統(增刪改查)學生新作JavaSQL
- 學生資訊管理系統用例
- 專案管理學習筆記二:資訊系統服務管理專案管理筆記
- Vista反刪除系統更多資訊展示(轉)
- Java簡單學生資訊管理系統Java
- 基於php學生資訊管理系統PHP
- 學生資訊管理系統之深度理解
- 學生資訊管理系統之優化優化
- 【學生資訊管理系統】EOF 和 BOF
- win10怎樣刪除office授權資訊_win10系統刪除office授權資訊的步驟Win10
- 資訊源管理系統是資訊部門自身資訊化
- 集團資訊生態系統
- 學生資訊管理系統課程設計
- 我的學生資訊管理系統總結
- 學生資訊管理系統之SQL連結SQL
- struts2學生資訊管理系統篇章①
- 【學生資訊管理系統】系統的介面與後臺
- 資訊系統監理之資訊系統專案管理專案管理
- 某學校的學生資訊管理系統網站網站
- 醫學實驗室資訊管理系統原始碼原始碼
- 學生資訊管理系統(c語言實訓)C語言
- 基於檔案的學生資訊管理系統
- 【學生資訊管理系統】模組程式碼的理解
- 學生資訊管理系統[有軟體截圖]
- 學生管理系統
- 如何自主搭建資訊管理系統
- 車間管理資訊系統
- 4-資訊系統管理
- win10怎樣刪除本地賬戶資訊_win10系統刪除本地賬戶方法Win10
- LinkedIn的生態系統–資訊圖
- Android應用開發-學生資訊管理系統Android
- 學生資訊管理系統解析之介面實踐篇
- SchoolTool:先進的學院管理和資訊系統
- C++課程設計:學生資訊管理系統C++
- 管理資訊系統川大972 | 管理資訊系統全書知識點總結
- 探討基於資訊系統的專案型生產管理
- win10 QQ熱點資訊怎樣刪除_win10刪除QQ熱點資訊教程Win10