【機房收費系統】之學生基本資訊維護
阿新 • • 發佈:2019-01-12
學生基本資訊維護主要包括兩大功能查詢和修改。這裡的查詢比之前做的簡單查詢稍稍複雜了點,此處要用到組合查詢。要成功實現查詢這一功能,首先要找到突破點,關鍵點就是組合關係。如果沒有選擇組合關係,便是一般的簡單查詢,反之,則是組合查詢。在組合查詢中,很重要的一點是將combobox中的中文字轉換成英文。這裡,我用到的是函式的轉換——FiledName
此實現此功能的重要程式碼如下:
'查詢滿足條件的內容 txtsql = "select * from student_info where " '查詢同時滿足選擇條件、輸入內容的資訊 txtsql = txtsql & FiledName(comboFiledName1.Text) & Trim(comboOperate1.Text) & " " & Trim(txtContent1.Text) & " " '如果第一個組合關係不為空 If Trim(comboRelation1.Text <> "") Then If Trim(comboFiledName2.Text) = "" Or Trim(comboOperate2.Text) = "" Or Trim(txtContent2.Text) = "" Then MsgBox "你選擇了第一個組合關係,請輸入第二行資料之後再查詢!", vbOKOnly, "提示" Exit Sub Else txtsql = txtsql & FiledName(comboRelation1.Text) & " " & FiledName(comboFiledName2.Text) & Trim(comboOperate2.Text) & " " & Trim(txtContent2.Text) & " " '如果第二個組合關係不為空 If Trim(comboRelation2 <> "") Then If Trim(comboFiledName3.Text) = "" Or Trim(comboOperate3.Text) = "" Or Trim(txtContent3.Text) = "" Then MsgBox "你選擇了第二個組合關係,請輸入第三行資料之後再查詢!", vbOKOnly, "提示" Exit Sub Else txtsql = txtsql & FiledName(comboRelation2.Text) & " " & FiledName(comboFiledName3.Text) & Trim(comboOperate3.Text) & " " & Trim(txtContent3.Text) & " " End If End If End If End If '執行查詢語句 Set mrc = ExecuteSQL(txtsql, msgtext) Public Function FiledName(strFliedName As String) As String Select Case strFliedName Case "卡號" FiledName = "cardno" Case "學號" FiledName = "studentno" Case "姓名" FiledName = "studentname" Case "性別" FiledName = "sex" Case "系別" FiledName = "depart" Case "年級" FiledName = "grade" Case "班級" FiledName = "class" Case "與" FiledName = "and " Case "或" FiledName = "or" End Select End Function
第二大功能是修改。首先,單擊修改按鈕會自動跳到“修改學生資訊”窗體,此時要明白修改的內容是查詢到的其中一條記錄進行修改,因此要對修改的記錄進行選擇,並將將該條記錄顯示在“修改學生資訊”的窗體上。其次就是實現“修改學生資訊”窗體中的兩大功能:確定修改和取消修改。
思路理清了,就是程式碼的編寫過程了。以下是點選修改按鈕的重要程式碼:
'單擊時選擇整行 myFlexGrid.SelectionMode = flexSelectionByRow '在當前單元的周圍畫一個焦點框 myFlexGrid.FocusRect = flexFocusNone '該值決定了所選定的單元是否突出顯示 myFlexGrid.HighLight = flexHighlightWithFocus With myFlexGrid If .RowSel = 0 Then MsgBox "請選擇要修改的資料!", vbOKOnly, "提示" Exit Sub Else If .RowSel > 0 Then ' frmBasicInfoMaintain.Hide TmpCardno = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 0) frmEditStudent.txtSID = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 1) frmEditStudent.txtName = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 2) frmEditStudent.comboSex = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 3) frmEditStudent.txtDept = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 4) frmEditStudent.txtGrade = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 5) frmEditStudent.txtClass = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 6) frmEditStudent.txtCardNo = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 0) frmEditStudent.txtCash = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 7) frmEditStudent.txtStatus = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 9) frmEditStudent.txtExplain = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 8) frmEditStudent.comboType = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 12) frmEditStudent.Show End If End If End With
不得不說SQL語句的功能很強大呀!在這個窗體中,我也學會了很多。剛開始,還很迷茫,加上給的系統實現的功能並不完美。不過還好,身邊有這麼多優秀的小夥伴,多多交流碰撞,思路一下子就打開了。“站在巨人的肩膀上!”哈哈