?? frminfomanage.frm
字號(hào):
rsBaseInfo("身份證號(hào)") = Trim$(txtIDCard.Text)
rsBaseInfo("姓名") = Trim$(txtName.Text)
'處理選擇性別的單選按鈕
If radioMale = True Then
rsBaseInfo("性別") = Trim$(radioMale.Caption)
Else
rsBaseInfo("性別") = Trim$(radioFemale.Caption)
End If
'將出生日期轉(zhuǎn)換為日期格式存入數(shù)據(jù)庫(kù)
rsBaseInfo("出生日期") = CDate(mskEdDate.Text)
rsBaseInfo("所屬學(xué)校") = Trim$(txtSchool.Text)
rsBaseInfo("所屬學(xué)院") = Trim$(txtAcademy.Text)
rsBaseInfo("所屬系別") = Trim$(txtSpecialty.Text)
rsBaseInfo("所屬年級(jí)") = Trim$(txtGrade.Text)
rsBaseInfo("所屬班級(jí)") = Trim$(txtClass.Text)
rsBaseInfo("學(xué)生類別") = Trim$(cboKind.Text)
rsBaseInfo("籍貫") = Trim$(txtNativePlace.Text)
'寫(xiě)入附加信息數(shù)據(jù)庫(kù)表
rsAddInfo("學(xué)號(hào)") = Trim$(txtNumber.Text)
'如果有圖片文件存在,則將其添加到數(shù)據(jù)庫(kù)中去
'此處調(diào)用了StartModule中聲明的過(guò)程來(lái)完成存儲(chǔ)圖片到數(shù)據(jù)庫(kù)的功能
If strPath <> vbNullString Then
Call newSaveToDB(rsAddInfo("照片"), strPath)
End If
'執(zhí)行更新操作,將錄入的信息正式寫(xiě)入數(shù)據(jù)庫(kù)
rsBaseInfo.Update
rsAddInfo.Update
Exit Sub
err:
'產(chǎn)生錯(cuò)誤,則取消添加數(shù)據(jù)的操作
MsgBox err.Number & " " & err.Description
rsBaseInfo.CancelUpdate
rsAddInfo.CancelUpdate
End Sub
Private Sub cmdNext_Click()
On Error GoTo err
If Not rsBaseInfo.EOF Then
rsBaseInfo.MoveNext
rsAddInfo.MoveNext
'記錄指針移動(dòng)后再次判斷是否到了記錄結(jié)尾
If Not rsBaseInfo.EOF Then
BaseBookMark = rsBaseInfo.Bookmark
AddBookMark = rsAddInfo.Bookmark
Else
MsgBox "已到記錄尾部!"
rsBaseInfo.MoveLast
rsAddInfo.MoveLast
End If
Call ShowData(rsBaseInfo, rsAddInfo)
Else
MsgBox "已到記錄尾部!"
End If
Exit Sub
err:
MsgBox err.Number & " " & err.Description
rsBaseInfo.MoveLast
rsAddInfo.MoveLast
End Sub
Private Sub cmdPrevious_Click()
On Error GoTo err:
If Not rsBaseInfo.BOF Then
rsBaseInfo.MovePrevious
rsAddInfo.MovePrevious
'移動(dòng)后再次判斷是否已經(jīng)到了記錄的首部
If Not rsBaseInfo.BOF Then
BaseBookMark = rsBaseInfo.Bookmark
AddBookMark = rsAddInfo.Bookmark
Else
MsgBox "已到記錄首部!"
rsBaseInfo.MoveFirst
rsAddInfo.MoveFirst
End If
Call ShowData(rsBaseInfo, rsAddInfo)
Else
MsgBox "已到記錄首部!"
End If
Exit Sub
err:
MsgBox err.Number & " " & err.Description
rsBaseInfo.MoveFirst
rsAddInfo.MoveFirst
End Sub
Private Sub cmdSaveImage_Click()
txtNumber.Text = rsAddInfo("學(xué)號(hào)")
With dlgOpen
.Filter = "Bmp(*.bmp)|*.bmp|All Image|*.bmp;*.jpg;*.gif|All(*.*)|*.*"
'以保存的方式使用CommonDialog對(duì)話框
.ShowSave
'填寫(xiě)在對(duì)話框中文件名文本框里的文件名與其他信息組成了完整的文件名
'將這個(gè)完整文件路徑名賦值給strPath
strPath = .FileName
End With
If Not (rsAddInfo("照片") Is Nothing) Then
'調(diào)用在StarModule里的將圖片從數(shù)據(jù)庫(kù)中讀出的函數(shù),
'將圖片按strPath變量指定的路徑存放
Call newGetFromDB(rsAddInfo("照片"), strPath)
'存儲(chǔ)圖片到磁盤(pán)上后,從磁盤(pán)上顯示該圖片
picPhoto.Picture = LoadPicture(strPath)
End If
End Sub
Private Sub cmdStarAdd_Click()
'設(shè)置錄入控件可用
'清空錄入控件中的內(nèi)容
Call ChangeEnable(True)
Call ClearData
'設(shè)置“完成添加”按鈕可用
cmdAddData.Enabled = True
'設(shè)置“完成修改按鈕不可用”
cmdModifyData.Enabled = False
'停止利用“學(xué)號(hào)”文本框進(jìn)行查詢的功能
blnFind = False
End Sub
Private Sub cmdStarModify_Click()
'設(shè)置錄入控件可用
Call ChangeEnable(True)
'設(shè)置“完成添加”按鈕不可用
cmdAddData.Enabled = False
'設(shè)置“完成修改”按鈕可用
cmdModifyData.Enabled = True
'開(kāi)啟利用"學(xué)號(hào)"文本框進(jìn)行查詢的功能
blnFind = True
End Sub
Private Sub dgrInfo_Click()
'功能: 單擊DataGrid控件,則將學(xué)生附加信息表中的一些信息和圖片
' 顯示到窗體上
Dim strNumber As String
Dim rsTemAddInfo As ADODB.Recordset
Dim strFind As String
'利用Find方法進(jìn)行查詢定位
strNumber = Trim$(rsBaseInfo("學(xué)號(hào)"))
strFind = "學(xué)號(hào)=" & "'" & strNumber & "'"
rsAddInfo.MoveFirst
rsAddInfo.Find (strFind)
'顯示學(xué)號(hào)、顯示數(shù)據(jù)庫(kù)中的圖片,這其實(shí)是一種主從表的方式
txtAddNumber = Trim$(rsBaseInfo("學(xué)號(hào)"))
Set picBrowPhoto.DataSource = rsAddInfo
picBrowPhoto.DataField = "照片"
BaseBookMark = rsBaseInfo.Bookmark
AddBookMark = rsAddInfo.Bookmark
End Sub
Private Sub Form_Activate()
On Error GoTo err
'當(dāng)窗體激活的時(shí)候,保存當(dāng)前狀態(tài)到書(shū)簽變量
rsBaseInfo.Bookmark = BaseBookMark
rsAddInfo.Bookmark = AddBookMark
'重新獲取一次記錄集
rsBaseInfo.Requery
rsAddInfo.Requery
'將數(shù)據(jù)信息顯示到錄入窗體
Call ShowData(rsBaseInfo, rsAddInfo)
Call ChangeEnable(False)
Exit Sub
err:
MsgBox err.Number & " " & err.Description
End Sub
Private Sub Form_Deactivate()
On Error GoTo err
'目的是保持當(dāng)前記錄的位置
'當(dāng)窗體轉(zhuǎn)為非激活狀態(tài)的時(shí)候
'記錄當(dāng)前狀態(tài)
If rsBaseInfo.EOF Then
rsBaseInfo.MoveLast
rsAddInfo.MoveLast
End If
If rsAddInfo.BOF Then
rsBaseInfo.MoveFirst
rsAddInfo.MoveFirst
End If
BaseBookMark = rsBaseInfo.Bookmark
AddBookMark = rsAddInfo.Bookmark
Exit Sub
err:
MsgBox err.Number & " " & err.Description
End Sub
Private Sub Form_Initialize()
On Error GoTo err
'窗體初始的化的時(shí)候,通過(guò)調(diào)用GetRecordSet函數(shù)設(shè)置
'針對(duì)存放學(xué)生信息的兩個(gè)表的兩個(gè)記錄集對(duì)象
Set rsBaseInfo = GetRecordSet(strBaseSql)
Set rsAddInfo = GetRecordSet(strAddsql)
'將記錄集的當(dāng)前狀態(tài)分別賦值給書(shū)簽變量
BaseBookMark = rsBaseInfo.Bookmark
AddBookMark = rsAddInfo.Bookmark
Exit Sub
err:
MsgBox err.Number & " " & err.Description
End Sub
Private Sub Form_Load()
'初始化cboKind控件,為其添加幾項(xiàng)學(xué)生類別
cboKind.Clear
cboKind.AddItem "本科"
cboKind.AddItem "碩士研究生"
cboKind.AddItem "博士研究生"
cboKind.AddItem "專科"
cboKind.ListIndex = 0
'調(diào)用MDI父窗體的事件,將MDI窗體的子窗體屬性加1
'激活相應(yīng)的窗體菜單
frmMainMDI.WindowCreated
'開(kāi)始的時(shí)候允許利用學(xué)號(hào)文本框進(jìn)行查詢定位
blnFind = True
End Sub
Private Sub Form_Resize()
'定義變量來(lái)存放記錄窗體以及控件位置、大小的數(shù)據(jù)
Dim xWidth As Long, yHeight As Long, _
frmBtm As Long, frmLft As Long
'防止窗體最小化的時(shí)候與下面的代碼發(fā)生沖突產(chǎn)生錯(cuò)誤
On Error GoTo err
'信息錄入窗體改變大小時(shí)候的寬度和高度
xWidth = frmInfoInput.ScaleWidth
yHeight = frmInfoInput.ScaleHeight
'為Frame框架的移動(dòng)準(zhǔn)備數(shù)據(jù)
frmBtm = frmInfoInput.ScaleHeight - 1.1 * frameMoveData.Height
frmLft = frmInfoInput.ScaleWidth - 1.05 * frameMoveData.Width
'始終將數(shù)據(jù)移動(dòng)的按鈕組放于窗體最下方
frameMoveData.Move frmLft, frmBtm
'設(shè)置SSTab控件的高度,使得該控件始終不能與Frame控件有重復(fù)部分
sstabInfo.Height = yHeight - 1.1 * frameMoveData.Height
'調(diào)整SSTab的寬度與窗體的寬度一致
sstabInfo.Width = xWidth
'調(diào)整DataGrid控件的寬度與SStab控件的寬度一致
dgrInfo.Width = sstabInfo.Width
'確保窗體保持原始大小,當(dāng)窗體大小改變太多的時(shí)候
'將窗體設(shè)置為不可用,重而不能再改變大小
'然后調(diào)整窗體的寬度和高度,再將窗體設(shè)置為可用
If xWidth < 10800 Or yHeight < 8250 Then
frmInfoInput.Enabled = False
frmInfoInput.Height = 8250
frmInfoInput.Width = 10800
End If
frmInfoInput.Enabled = True
Exit Sub
err:
'如果,MDI父窗體也調(diào)整大小,并設(shè)置了一次不可用,那么
'其所有的子窗體將都不可用,此時(shí)再調(diào)整子窗體的大小時(shí)候?qū)? '產(chǎn)生一個(gè)錯(cuò)誤,捕獲該錯(cuò)誤,就能使得子窗體重新處于激活狀態(tài)
frmInfoInput.Enabled = True
Exit Sub
End Sub
Private Sub Form_Terminate()
'窗體關(guān)閉的時(shí)候,將記錄集所占用的內(nèi)存資源釋放
rsBaseInfo.Close
rsAddInfo.Close
Set rsBaseInfo = Nothing
Set rsAddInfo = Nothing
End Sub
Private Sub Form_Unload(Cancel As Integer)
frmMainMDI.WindowDestroyed
End Sub
Private Sub mskEdDate_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{tab}"
End If
End Sub
Private Sub mskEdDate_LostFocus()
Dim strDate As String
Dim iSpace As Integer
strDate = Trim$(mskEdDate.Text)
iSpace = InStr(strDate, "_")
If iSpace > 0 Then
MsgBox "請(qǐng)按照DD/MM/YYYY的格式輸入日期!"
mskEdDate.SetFocus
Exit Sub
End If
End Sub
Private Sub sstabInfo_Click(PreviousTab As Integer)
On Error GoTo err
'根據(jù)不同的頁(yè)面,執(zhí)行存放當(dāng)前數(shù)據(jù)狀態(tài)信息的功能
'另外,為“瀏覽界面”的圖片框控件設(shè)置數(shù)據(jù)源。
If sstabInfo.Tab = 1 Then
Set dgrInfo.DataSource = rsBaseInfo
Set picBrowPhoto.DataSource = rsAddInfo
picBrowPhoto.DataField = "照片"
txtAddNumber.Text = Trim$(rsAddInfo("學(xué)號(hào)"))
End If
If sstabInfo.Tab = 0 Then
rsBaseInfo.Bookmark = BaseBookMark
rsAddInfo.Bookmark = AddBookMark
Call ShowData(rsBaseInfo, rsAddInfo)
End If
Exit Sub
err:
MsgBox err.Number & " " & err.Description
End Sub
Private Sub txtNumber_KeyPress(KeyAscii As Integer)
'定位數(shù)據(jù)的功能,與修改記錄配套使用
Dim strFind As String
Dim strNum As String
strFind = "學(xué)號(hào)=" & Trim$(txtNumber.Text)
'如果開(kāi)啟了查找定位功能,而且按下回車鍵,那么
'就開(kāi)始執(zhí)行查找功能
If blnFind = True And KeyAscii = 13 Then
rsBaseInfo.Find (strFind)
rsAddInfo.Find (strFind)
On Error GoTo err
strNum = Trim$(rsBaseInfo("學(xué)號(hào)"))
If strNum = vbNullString Then
Exit Sub
Else
ShowData rsBaseInfo, rsAddInfo
End If
End If
Exit Sub
err:
MsgBox "沒(méi)有找到該記錄!"
End Sub
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -