【學生】 一個小bug

在我優化學生的過程中,我發現自己的邏輯是混亂的,好不容易我想着我應該梳理一下學生的各個窗體之間的聯繫了,卻蹦出了一個問題,我這是百思不得其解啊!直到,我叫來了我的小夥伴--小崩豆,他是一個思路很清晰的人,有他在我旁邊指導,我才最終解決了問題。

到底是怎麼回事呢?

這是添加成績窗體,原本我的代碼能夠實現的功能是當選擇了班號,相應的學號、課程和姓名都會對應的出現 ,可是今天早上不知爲何都點不出來了。

 我以爲是代碼的問題,是不是SQL語句寫錯了,鼓搗了一上午,我把代碼跟源代碼一個一個對照,但是就是沒發現有什麼問題,想得我腦仁都要炸了,哎呀,痛苦!(ㄒoㄒ)(ㄒoㄒ)(ㄒoㄒ)

然後,把小崩豆拽過來後,他幫我分析了一下,原來是因爲我沒有理清楚各個窗體之間的聯繫,在添加學籍信息窗體,添加班級信息窗體,添加成績信息窗體這三個窗體中,都有班號這個屬性,而且班號作爲一個外碼,和主碼在聯繫着這三個窗體,(班號在添加學籍信息和添加成績信息中是非主屬性,而在添加班級信息中是主鍵),所以,班號的統一至關重要,而源代碼並未將這三個窗體緊密聯繫,而是各管各的,用textbox控件在各個窗體中來輸入班號,這樣也可以,前提是我們要保證在每個窗體輸入的班號是一致的,否則,在圖一中,就無法實現選擇了班號,相應的學號、課程和姓名都會對應的出現的功能。

天哪,寫這麼多,我自己都不想看,但是,沒辦法啊……

這是學生這個表中的班號記錄

這是在班級這個表中的班號

 這是在成績這個表中的班號記錄

於是,小崩豆說,你用combobox 將三個班號都統一了,每次都只讀取學生中的班號數據,不就行了。

真是一語驚醒夢中人呢,

於是,我在成績窗體中添加了一段這樣的代碼,就可以將辦好都統一了

Dim mrc As ADODB.Recordset
    Dim txtsql As String
    Dim msgtext As String

    flagselect = False
                                                                '添加班號到ComboBox
    txtsql = "select * from class_Info "
    Set mrc = ExecuteSQL(txtsql, msgtext)

    While (mrc.EOF = False)
        comboclassno.AddItem mrc!class_No
        mrc.MoveNext
    Wend
    mrc.Close

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章