機房——操作員——學生基本資訊維護
阿新 • • 發佈:2018-12-17
學生基本資訊維護這個窗體,主要實現兩項功能,其一是組合查詢功能的實現,其二便是對查詢出的資訊可以選擇並進行修改,組合查詢窗體在上篇部落格已經分享過了,小夥伴可以檢視上篇部落格,今天主要分享的是,如何實現將查詢到的資訊,能夠進行修改這個功能。
我們可以將這個功能在分解下,分解成先能選中一行資料,在將資料顯示到另一個窗體中。這樣分開來進行,將問題簡單化,一點一點來實現。
下圖為對查詢結果進行選擇。
從上圖我們可以看出,當選中某行查詢資料後,改行將變成藍色背景。如何將選中資料行變成藍色字型呢?這就要在MSHFlexGrid1控制元件上“動手腳”了,處理問題要從根上解決,我用的是最簡單直接打的方法:右擊MSHFlexGrid1控制元件,選擇屬性,對於突出顯示,焦點區域,選擇模式這幾項分別選擇2,0,1的屬相即可,其他屬性不用動
如圖
好了,設定完屬性後,便可以進行選擇了,接下來就是對選擇的資料行進行賦值修改了。
還是分成兩部分,一是實現賦值功能,二是修改學生資訊,也就是說,將選擇的資料行賦值到另一個新的窗體上, 這個窗體,我們命名為“學生資訊”。一開始我的想法是,在學生資訊窗體新增程式碼,進行賦值,“修改”命令按鈕,只是單純的傳遞命令,可是沒有賦值成功,也不報錯,也不顯示資訊,幾番周折後,發現問題原來是處在了命令按鈕上,所有的賦值程式碼是在修改按鈕上新增的。賦值在點選“修改”按鈕的那一刻便開始了,而“學生資訊”窗體只是顯示資訊
部分程式碼展示
Option Explicit '定義臨時卡號 Public TmpCardno As String Private Sub cmdAlter_Click() TmpCardno = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 0) '臨時卡號便是選中資料行的卡號 frmstuNews.txtStudentNo = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 1) '學號賦值 frmstuNews.txtClass = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 6) '班級賦值 frmstuNews.txtName = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 2) frmstuNews.ComboSex = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 3) frmstuNews.txtDept = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 4) frmstuNews.txtGrade = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 5) frmstuNews.txtCardNo = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 0) frmstuNews.txtBalance = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 7) frmstuNews.ComboStatus = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 9) frmstuNews.txtExplain = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 8) frmstuNews.ComboType = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 10) frmstuNews.Show Unload Me Exit Sub frmstuNews.Show '完成賦值後,開啟學生資訊窗體,載入資訊 End Sub
從程式碼可以看出,要先定義一個臨時卡號,用於儲存選中的資料行
下圖為賦值成功圖
實現了賦值的功能後,就下來便是修改學生資訊的功能,這個功能,相對簡單,我們在做學生的時候也有接觸,就不再多贅述,直接上程式碼
首先,定義一個臨時卡號,用於和上個窗體建立連線
'定義臨時卡號
Public TmpCardno As String
確定修改按鈕部分
txtsql = "select * from student_Info where cardno='" & Trim(txtCardNo) & "'" Set mrc = ExecuteSQL(txtsql, msgtext) If Not (mrc.BOF Or mrc.EOF) Then mrc.Fields(0) = Trim(txtCardNo.Text) mrc.Fields(1) = Trim(txtStudentNo.Text) mrc.Fields(2) = Trim(txtName.Text) mrc.Fields(3) = Trim(ComboSex.Text) mrc.Fields(4) = Trim(txtDept.Text) mrc.Fields(5) = Trim(txtGrade.Text) mrc.Fields(6) = Trim(txtClass.Text) mrc.Fields(7) = Trim(txtBalance.Text) mrc.Fields(8) = Trim(txtExplain.Text) mrc.Fields(9) = Trim(frmLogin.txtUserID.Text) mrc.Fields(10) = Trim(ComboStatus.Text) mrc.Fields(11) = "未結賬" mrc.Fields(12) = Date mrc.Fields(13) = Time mrc.Fields(14) = Trim(ComboType.Text) mrc.Update 'MsgBox "修改資訊成功", 48, "提示" mrc.Close Unload Me frmBasicInfoMaintain.Show '修改資訊後,重新載入到基本資訊維護窗體的查詢結果中
載入窗體部分
txtsql = "select * from student_Info where cardno='" & Trim(txtCardNo) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
If mrc.EOF Then
MsgBox "載入資訊不存在,請確認後重新操作!", , "溫馨提示"
Else
txtStudentNo.Text = mrc!studentno
txtName.Text = mrc!studentname
ComboSex.Text = mrc!sex
txtDept.Text = mrc!department
txtGrade.Text = mrc!grade
txtClass.Text = mrc!Class
txtCardNo.Text = mrc!cardno
txtBalance.Text = mrc!cash
ComboStatus.Text = mrc!Status
txtExplain.Text = mrc!explain
ComboType.Text = mrc!Type
mrc.Close
後期陸續更新,歡迎大家評論區留言!