頁面檔案怎麼看
成績管理中,學生成績錄入有一些實際應用,那就是我們一次不可能只錄入一個學生。
那麼要一次錄入同一個學科的所有學生,如何解決。
本例以分頁選項卡形式來製作,有一點難度,所以做起來比較費時費力。
不過,功能完成的很良好。
下面具體介紹:
錄入介面
很顯然,每個分頁就是一個科目。每個分頁都有學生列表。
選擇頂部下拉框,可實現不同年級選擇,很方便。
只要對學生成績分別新增,一鍵完成儲存,資料表就製作完成了。
關鍵問題是做好許多選擇處理,後臺程式碼在不同的表之間來回跳轉。
真是走了山路十八彎才得到這麼一個簡單的頁面。
課目設定
其中做了一個課目設定,以前沒有做這個方面的功能。
今天加了上去,感覺對每個班組的課目可以自由設定。
雖然感覺沒多麼大意義,但是不同的學校適用不同的學習科目很具有便捷性。
功能簡單不做過多介紹。
程式碼介紹
重點應用了MultiPage控制元件,分頁顯示學科專案。
運用程式碼建立控制元件,所以在編輯的時候,表單裡是看不到分頁畫面的。
創新建分頁
Set Fr = Me。Controls。Add(“Forms。MultiPage。1”, “ControlPag”)
儲存成績
儲存成績做了個過程,方便呼叫,其邏輯就是找到對應的學號和學科,然後進行賦值。
理論很簡單,唯一比較麻煩的是就是從選項卡中取得相應的學生學號和成績有一點難度。
其中涉及到如何遍歷窗體控制元件和分頁以及分頁裡面的控制元件。
要做三次巢狀迴圈,感覺要瘋了的狀態。
如果數學沒學好,感覺這就是個天大的問題。
不能思考,有損大腦細胞。
獲取學生資訊過程
Function getStudentName(banji As String) As Range
Dim xsx As Worksheet
Set xsx = ThisWorkbook。Worksheets(“學生資訊”)
xsx。Activate
Dim BR As Range, inR As Range
Dim iR As Integer, iC As Integer
iR = xsx。Range(“D65535”)。End(xlUp)。Row
If iR <= 1 Or iR >= 65535 Then
Set getStudentName = Nothing
Exit Function
Else
iC = 4
Set BR = xsx。Range(xsx。Cells(2, iC), xsx。Cells(iR, iC))
For Each inR In BR
If inR。Value = banji Then
If getStudentName Is Nothing Then
Set getStudentName = inR。Offset(0, -1)
Else
Set getStudentName = Application。Union(getStudentName, inR。Offset(0, -1))
End If
End If
Next inR
‘Set getStudentName = BR
End If
End Function
總結
無論如何,這個功能完成的很不錯,加以修改,會變得更加實用和漂亮。
其中綜合性技術應用很多,無論哪個環節不很熟悉,就變得十分困難。
學習vba 不能一步到位,漸進式努力,總會不斷提高。
歡迎關注、收藏