實現功能.
這部分讓自己學到了很多技術上的東西,尤其是程式與資料庫互動出現的問題,因為代碼基本上都是重複的都是是"增刪改查".下面說說自己遇到的問題.
問題一:
adLockOptimistic與update、adLockBatchOptimistic與updatebatch。
因為弄混了兩者的區別,讓自己開始的時候狠狠地糾結了一把。
問題二:
在敲學生資訊管理系統時出現上述問題一般都是資料庫連接有問題,大家可以重點檢查與資料庫連接有關的語句。提醒大家一點,向下面的過程中,一定要注意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
問題三:
出現上述錯誤,主要是輸入長度或資料類型與資料庫的設定不一致。這樣在將資料寫入資料庫時就會出現錯誤。避免這種錯誤的方法可以根據資料庫的需要來顯示使用者輸入的長度和格式。
比如:限制使用者只能輸入數字,最大輸入長度為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 SubPublic Sub lmtNumber(a As Integer) '只能輸入數字 If (a >= 48 And a <= 57) Or a = 8 Then Else a = 0 MsgBox "請輸入數字!!", vbOKOnly + vbExclamation, "警告" End IfEnd Sub問題四:
當資料庫中沒有記錄時,再次載入就會出現這個問題,解決方案:提前進行判斷,如果資料為空白則提示添加資料。
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 IfEnd Sub
問題五:
這個問題糾結了很久,使用書籤時如果刪除最後一條記錄時就會報錯。大家解決的方法也各不相同,我一開始採用的是:進行判斷,如果是最後一條記錄時則提醒然後刪除並卸載表單。
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。現在我也沒有解決,希望大家給點指點。
問題六:
主要當對某個表進行操作時,如果這個表被關閉了,就會出現這個錯誤。
問題七:
當更新資料時是直接更新好還是先刪除在寫入的好?
上述問題都是在做學生管理系統時遇到的一些主要問題。當然問題肯定不止這些,其他的一些細節問題,我們將在下面文章中講述。