1. 程式人生 > >學生資訊管理系統——錯誤型別彙總

學生資訊管理系統——錯誤型別彙總

1.錯誤型別及解決方案:
①使用者定義型別未定義
原因:未引用控制元件
解決方案:工程——引用【Microsoft ActiveX Data Objects 2.5 Library】
拓展:ActiveX Data Objects,簡稱ADO,訪問資料庫的一個介面,就是用來跟資料庫互動的。
這裡寫圖片描述
這裡寫圖片描述
②“424” 要求物件
原因:有可能是拼寫錯誤,或者窗體未引用該控制元件,控制元件的命名不對
③缺少函式或變數
原因:拼寫錯誤,把英文的句號 . 寫成了英文的標點符號 , 如圖

這裡寫圖片描述
④實時錯誤“91”,物件變數或With塊未設定 。
MSDN是如此解釋的:
物件變數或 With 塊變數沒有設定(錯誤 91)

建立物件變數有兩個步驟。第一,必須先宣告物件變數。然後必須用 Set 語句將一個正確的引用賦值給物件變數。同樣地,With…End With 塊必須先用 With 語句進入點來執行初始化。此錯誤有以下的原因和解決方法:

試圖使用的物件變數,還沒有用一個正確物件的引用來賦值。
給物件變數指定或再指定一個引用。例如,如果在下列的程式碼中省略 Set 語句的話,那麼引用 MyObject 將會產生錯誤:

Dim MyObject As Object ’ 建立物件變數。
Set MyObject = Sheets(1) ’ 建立一個正確的物件引用。
MyCount = MyObject.Count ’ 計數值賦給 MyCount。

試圖用的物件變數已經被設為 Nothing。
Set MyObject = Nothing ’ 釋放此物件。
MyCount = MyObject.Count ’ 引用了已釋放的物件。

再指定引用給物件變數。例如,使用新的 Set 語句給物件設定新的引用。

此物件是正確的物件,但沒有被設定,因為在物件庫中,在 “引用” 對話方塊中沒有被選取。
在 “新增引用” 對話方塊選擇物件庫。

在 With 塊內GoTo 語句的去向。
不要跳進 With 塊。確保塊使用 With 語句進入點以執行初始化。

當選了 “設定下一條語句” 命令時,在 With 塊內指定了一行。
With 塊必須用 With 語句執行初始化。

詳細資訊,可選取有問題的專案,並按下 F1 鍵。
錯誤型別有:
1.VB程式碼出現錯誤
常出現錯誤的程式碼是查詢語句出現錯誤:

這裡寫圖片描述
解決方案:
這裡寫圖片描述
原因:

txtSQL = “select * from user_Info ” ‘從student表的密碼錶user_info中選擇
Set mrc = ExecuteSQL(txtSQL, MsgText)
mrc.Fields(1) = Text1.Text ‘從第二列user PWD賦值
這裡寫圖片描述
注意:
注意一:查詢語句中每個單詞的拼寫問題
注意二:from後是資料庫的表名,名稱一定要輸入正確,注意下劃線與大小寫 where後面是資料庫中的列的名稱
注意三:逗號是英文的逗號,許多的錯誤都是由於中文的逗號所引起的
還有可能是別的控制元件的程式碼打錯了。
2.資料庫配置出現問題 ——如何配置ODBC,相關連結在下文中有。
3.執行的時候,TXT控制元件輸入的字串溢位限制。可以在資料表中檢視。如下圖,右擊藍色區域,選擇【設計】。
解決方案:可以在控制元件屬性中限制長度,或者在程式碼視窗限制。資料表中也可以設定,但是一般不建議在表中直接修改!
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
學生資訊管理系統之實時錯誤91
sql server常有的問題-實時錯誤’91’物件變數或with塊變數未設定解決
實時錯誤“91”物件變數或with塊變數未設定
⑤無MDI窗體可載入
解決辦法:
新增一MDI窗體,或者最好把窗體比如From1的MDIChild屬性設定為False,即可解決。
⑥未找到方法或資料成員 (集合、物件或使用者定義型別不包含引用的成員)
原因:*物件或成員名稱拼寫錯誤。
*指定了一個超出範圍的集合索引。
解決方案:隨便哪裡設定個斷點(按F9),用單步除錯(按F8)的方法,找到未定義的函 數或者是函式裡面不對的某個引數。

這裡寫圖片描述
解決方案:
⑧ByRef 引數型別不符 : 1。傳遞引數未定義型別,如果引數在呼叫前未定義型別,系統自動將它定義為Variant型別,由於與過程或函式中的對就引數型別不相同,所以提示”ByRef引數型別不符”

2。傳遞引數型別已經定義,但由於定義方法不對,所以提示”ByRef引數型別不符”。具體情況如下:

當VB中如此定義變數時,將會出現以上錯誤資訊的出現
這裡寫圖片描述
解決方案:缺少符號,紅色 符號標註部分
這裡寫圖片描述
對應以上定義的第一種錯誤:傳遞引數未定義:程式碼片段如下:

Dim MsgTest As String
Set mrc = ExecuteSQL(txtSQL, MsgText)
修改為:
Dim MsgText As String
第二種錯誤,傳遞引數型別已經定義,但由於定義方法不對。如下:
這裡寫圖片描述

⑨執行時,點選frmmain 選單欄無反應,進入死迴圈
原因:選單編輯器中窗體名稱寫的是中文的,而在其他窗體中命名的是英文的,
解決方案有兩種:
第一種,如圖所示,在選單編輯器中名稱改成英文命名的,
第二種,如下圖所示,不改變選單編輯器的中文名稱,將程式碼修改一下
這裡寫圖片描述
這裡寫圖片描述
⑩登陸視窗無反應,進不去系統
這裡寫圖片描述
解決方案:將【確定】按鈕的Default屬性改為True.
理由:按鈕的 Default 屬性是確定該按鈕是否是該窗體的預設按鈕,如果一個按鈕的Default屬性設定為 True ,那麼這個按鈕就是這個窗體的預設按鈕,那麼在進入窗體後按回車,即可執行這個按鈕的事件.
VB中CommandButton控制元件的常用屬性值及其功能
學生資訊管理系統錯誤彙總(二)
2.3021
參考: 這裡寫圖片描述
錯誤原因:新增班級資訊窗體中,班級未新增,student中無資料,為空值。(NULL)
這裡寫圖片描述
實時錯誤3021
3021
錯誤原因:、錯誤描述

在做學生資訊管理系統的時候執行以後碰到過這樣的錯誤:“實時錯誤’3021’,BOF或EOF中有一個是“真“,或者當前的記錄已被刪除,所需的操作要求一個當前的記錄。”

二、錯誤在什麼時候出現?

這個錯誤一般是出現的情況是在:當系統中還沒有新增任何資訊的時候,去點選修改資訊的時候。(例如:沒有新增任何的學籍資訊,而且系統之前也沒有任何的學籍資訊,這個時候去點修改學籍資訊,就回出現這種情況)
原始碼如下:

 Private Sub Form_Load()
    Dim txtSQL As String
    Dim MsgText As String


    txtSQL = "select * from student_Info"
    Set mrc = ExecuteSQL(txtSQL, MsgText) '得到STUDENT表,並顯示出來
        mrc.MoveFirst
    Call viewData
    mcbookmark = mrc.Bookmark '做標記
    mcclean = True '可以編輯的狀態



End Sub

修改之後:

Private Sub Form_Load()
Dim txtSQL As String
Dim MsgText As String

txtSQL = "select * from student_Info"
Set mrc = ExecuteSQL(txtSQL, MsgText) '得到STUDENT表,並顯示出來

If mrc.EOF And mrc.BOF Then  '一條IF語句充當錯誤處理,當無記錄時,mrc.eof=true
                              '和mrc.bof=true兩個條件同時滿足!
    MsgBox "無記錄!"
    frmModifysinfo.Show '直接進行下一步,顯示窗體
Else
    mrc.MoveFirst
    Call viewData
    myBookmark = mrc.Bookmark '對當前記錄進行標記
    mcclean = True '可編輯狀態
End If

End Sub
分享資源如下:
OCBC配置
錯誤:3704
這裡寫圖片描述
這裡寫圖片描述
學生錯誤“3704”
使用ADO或ADO控制元件訪問資料庫
VB與ADO的用法 (增刪改查)
解決方案:以上鍊接的方法都嘗試過了,依然沒有解決。 錯誤原因如下:將資料庫關掉了!
這裡寫圖片描述
總結:
出現3704的錯誤原因有以下幾種:
1.重新連線資料庫

2.重新配置ODBC

3.檢視 ConnectString = “FileDSN=student.dsn;UID=sa;PWD=123 詞句正確
解決方案有:
1.重新連線資料庫

2.重新配置ODBC

3.檢視 ConnectString = “FileDSN=student.dsn;UID=sa;PWD=123” 詞句正確
4.使用ADO或ADO控制元件訪問資料庫
錯誤:
這裡寫圖片描述
錯誤:錯誤的引數或者無效的屬性賦值