【正文】
程序鏈接,達(dá)到數(shù)據(jù)的關(guān)聯(lián),方便地應(yīng)用于其他的程序中。167。本系統(tǒng)所使用的模塊包括:系統(tǒng)模塊,員工調(diào)動(dòng)信息模塊,員工考勤模塊,員工基本信息模塊等。2. 員工基本信息(1) 添加員工信息:系統(tǒng)自動(dòng)生成員工編號(hào),管理員可以添加員工的基本信息,包括姓名、性別、籍貫、年齡、生日、住址、Email、學(xué)歷、專(zhuān)業(yè)、進(jìn)入本公司時(shí)間等。(3) 查詢(xún)員工信息:可以根據(jù)員工的編號(hào)、姓名或者進(jìn)入公司的時(shí)間進(jìn)行查詢(xún)員工基本信息。(4) 刪除員工信息:直接從列表中選中需要?jiǎng)h除的員工信息,然后進(jìn)行刪除操作,或者首先查詢(xún)需要?jiǎng)h除的員工信息,然后再刪除。(2) 修改考勤信息:當(dāng)考勤信息出現(xiàn)錯(cuò)誤需要修改的時(shí)候,可以從這里修改相應(yīng)的記錄。(4) 刪除考勤信息:分為刪除上下班信息和刪除其他考勤信息。4. 員工調(diào)動(dòng)信息(1) 添加調(diào)動(dòng)信息:添加企業(yè)員工的原有部門(mén)、原有職務(wù)、新部門(mén)、新職務(wù)等信息。(3) 查詢(xún)調(diào)動(dòng)信息:查詢(xún)某個(gè)員工的調(diào)動(dòng)信息或者某段時(shí)間內(nèi)企業(yè)內(nèi)部的調(diào)動(dòng)情況。第四章 人事管理系統(tǒng)的實(shí)現(xiàn)167。不論是 Windows 應(yīng)用程序的專(zhuān)業(yè)開(kāi)發(fā)人員還是初學(xué)者,Visual Basic 都為他們提供了一整套的工具用來(lái)方便地開(kāi)發(fā)應(yīng)用程序。目前 Visual Basic 軟件開(kāi)發(fā)團(tuán)體是世界上最大的軟件開(kāi)發(fā)團(tuán)體,它為全世界數(shù)千種工具和控件商所支持,因此選擇 Visual Basic 將使您獲得很大的優(yōu)勢(shì)。專(zhuān)業(yè)人員可以用 Visual Basic 實(shí)現(xiàn)其它任何 windows 編程語(yǔ)言所能實(shí)現(xiàn)的功能,而初學(xué)者只要掌握幾個(gè)關(guān)鍵詞就可以建立實(shí)用的 Windows 應(yīng)用程序。目前 Visual Basic 有三種版本,即學(xué)習(xí)版、專(zhuān)業(yè)版和企業(yè)版,可以滿(mǎn)足不同的開(kāi)發(fā)需要。因?yàn)?Visual Basic 是基于 Windows 的開(kāi)發(fā)語(yǔ)言,所以有必要與 Windows 環(huán)境保持一定的相似性。從這點(diǎn)上說(shuō) Visual Basic windows 應(yīng)用程序開(kāi)發(fā)語(yǔ)言沒(méi)有大的區(qū)別,但是由于處理各種窗口、事件和消息的所有可能的組合將有驚人的工作量,動(dòng)用傳統(tǒng)方法開(kāi)發(fā) Windows 應(yīng)用程序?qū)⒑馁M(fèi)程序員許多精力。許多消息都由 Visual Basic自動(dòng)自理了,其它的作為事件過(guò)程由編程者自行處理。在傳統(tǒng)的或“過(guò)程化”的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行哪一部分代碼及按何種順序執(zhí)行代碼。Visual Basic 是事件驅(qū)動(dòng)的程序設(shè)計(jì)語(yǔ)言。事件可以由用戶(hù)操作觸發(fā),也可以由來(lái)自操作系統(tǒng)或其它應(yīng)用程序的消息觸發(fā),甚至由應(yīng)用程序本身的消息觸發(fā)。因?yàn)槭录捻樞蚴菬o(wú)法預(yù)測(cè)的,所以在代碼中必須對(duì)執(zhí)行時(shí)的“各種狀態(tài)”作一定的假設(shè)。傳統(tǒng)的應(yīng)用程序開(kāi)發(fā)過(guò)程可以分為三個(gè)明顯的步驟:編碼、編譯和測(cè)試代碼。在大多數(shù)語(yǔ)文里,如果編寫(xiě)代碼時(shí)發(fā)生了錯(cuò)誤,則在開(kāi)始編譯應(yīng)用程序時(shí)該錯(cuò)誤就會(huì)被編譯器捕獲,此時(shí)必須查找并改正該錯(cuò)誤,然后再次進(jìn)行編譯,對(duì)每一個(gè)發(fā)現(xiàn)的錯(cuò)誤都要重復(fù)這樣的過(guò)程。除即時(shí)捕獲錯(cuò)誤外,Visual Basic 也在輸入代碼時(shí)部分地編譯該代碼。如果編譯器發(fā)現(xiàn)了錯(cuò)誤,則將錯(cuò)誤突出顯示于代碼中,這時(shí)可以更正錯(cuò)誤并繼續(xù)編譯,而不需從頭開(kāi)始。通過(guò)這種方式,代碼運(yùn)行的效果可以在開(kāi)發(fā)時(shí)進(jìn)行測(cè)試,而不必等到編譯完成以后。Access 是一套管理數(shù)據(jù)庫(kù)的應(yīng)用軟件,即數(shù)據(jù)庫(kù)管理系統(tǒng)。 DBMS) 數(shù)據(jù)庫(kù)是指一群可組織有系統(tǒng)的數(shù)據(jù)集合。 Access 中,整理好的數(shù)據(jù)將按數(shù)據(jù)的用途,分別存于不同的表中,Access 數(shù)據(jù)庫(kù)中包含多個(gè)表及其它數(shù)據(jù)庫(kù)對(duì)象。 使用“數(shù)據(jù)庫(kù)”窗口工具欄 創(chuàng)建、打開(kāi)或管理數(shù)據(jù)庫(kù)對(duì)象的快速查找命令?!?豎直方位更易于使用。使用新的對(duì)象快捷方式 在“數(shù)據(jù)庫(kù)”窗口中,使用向?qū)Э焖賱?chuàng)建新的數(shù)據(jù)庫(kù)對(duì)象,或是在設(shè)計(jì)視圖中打開(kāi)一個(gè)新的數(shù)據(jù)庫(kù)對(duì)象。鍵入名稱(chēng)以選中該對(duì)象 例如,查看表對(duì)象列表時(shí),鍵入“Sh”,可選擇“Shippers”表 ??梢詣?chuàng)建用于輸入和編輯數(shù)據(jù)的頁(yè),類(lèi)似于 Access 窗體。 按幾種方式收集和發(fā)布當(dāng)前數(shù)據(jù)交互地查看分組的記錄也可以排序和篩選記錄。 使用數(shù)據(jù)透視表列表可以按不同方式組織數(shù)據(jù),使用電子表格控件對(duì)進(jìn)行數(shù)據(jù)影射以及進(jìn)行復(fù)雜的計(jì)算,并且在圖表中通過(guò)圖形查看數(shù)據(jù)。 可以將 HTML 代碼保存在數(shù)據(jù)庫(kù)的字段中,并在頁(yè)上將它顯示為 HTML 格式的文本。使用熟悉的設(shè)計(jì)工具167。VisualBasic就會(huì)自動(dòng)生成一個(gè)窗體,這個(gè)窗體的屬性采用的都是默認(rèn)設(shè)置。 為了提高代碼的效率方便維護(hù),在VisualBasic中可以用公用模塊來(lái)存放工程中經(jīng)常使用的函數(shù)、過(guò)程和全局變量等。 在項(xiàng)目資源管理器中為這個(gè)工程添加一個(gè)模塊,.代碼如下:Public gUserName As String 39。添加和修改的標(biāo)志Public gSQL As String 39。保存查詢(xún)考勤結(jié)果SQL語(yǔ)句Public kqsql2 As String 39。保存上下班記錄編號(hào)Public LrecordID As Integer 39。保存加班記錄編號(hào)Public ErecordID As Integer 39。數(shù)據(jù)庫(kù)是否打開(kāi)標(biāo)志Public Function TransactSQL(ByVal SQL As String) As Dim con As Dim rs As Dim strConnection As StringDim strArray() As StringSet con = New 39。創(chuàng)建記錄集On Error GoTo TransactSQL_Error strConnection= Provider=。 amp。打開(kāi)連接 If StrComp(UCase$(strArray(0)), select, vbTextCompare) = 0 Then Trim$(SQL), con, adOpenKeyset, adLockOptimistic Set TransactSQL = rs 39。執(zhí)行命令 iflag = 1 End IfTransactSQL_Exit: Set rs = Nothing Set con = Nothing Exit FunctionTransactSQL_Error: MsgBox 查詢(xún)錯(cuò)誤: amp。判斷是否為回車(chē)鍵 SendKeys {TAB} 39。顯示窗體End Sub二、登錄窗體: 圖4-1有關(guān)本窗體的代碼如下:Option ExplicitDim pwdCount As IntegerPrivate Sub cmdCancel_Click() Unload Me Exit SubEnd SubPrivate Sub cmdOK_Click() Dim SQL As String Dim rs As If Trim( = ) ThenMsgBox 沒(méi)有輸入用戶(hù)名稱(chēng),請(qǐng)重新輸入!, vbOKOnly + vbExclamation, 警告 Else 39。保存用戶(hù)名稱(chēng) Unload Me Else MsgBox 密碼不正確,請(qǐng)重新輸入!, vbOKOnly + vbExclamation, 警告 End If End If Else Unload Me End If End If pwdCount=pwdCount+1 39。判斷是否輸入舊密碼 MsgBox 請(qǐng)輸入舊密碼, vbOKOnly + vbExclamation, 警告 Exit Sub Else If Trim() = Then 39。判斷兩次密碼是否相同 MsgBox 兩次密碼不同, vbOKOnly + vbExclamation, 警告 = = Else 39。 amp。 39。 MsgBox 密碼已經(jīng)修改, vbOKOnly + vbExclamation, 修改結(jié)果 Unload Me End If End IfEnd SubPrivate Sub Form_Load() = = = End Sub查詢(xún)員工信息圖4-4相關(guān)代碼如下:Option ExplicitPrivate query As String 39。起始時(shí)間Private todate As String 39。獲得起始和結(jié)束時(shí)間 fromdate = amp。 amp。 amp。 1, yyyymmdd) todate = amp。 amp。設(shè)置SQL語(yǔ)句 If = vbChecked Then query = select * from StuffInfo where SID=39。 Trim() amp。 End If If = vbChecked Then query = select * from StuffInfo where SName=39。 Trim() amp。 End If If = vbChecked Then query = select * from StuffInfo where SInTime between query = query amp。 and amp。 End If If = vbChecked And = vbChecked Then query = select * from StuffInfo where SID=39。 Trim() query = query amp。 and SName=39。 Trim() amp。 End If If = vbChecked And = vbChecked Then query = query amp。 todate amp。設(shè)置年 Left(rs(0), 4) Left(rs(0), 4) End If Wend = 0 = 0 End If For i = 1 To 12 39。添加記錄 39。 amp。 39。 SQL = SQL amp。 39。 amp。 39。Data Source= + + \ = SQL If SQL Then End If Set = 0 Call init 0 Else 39。Call checkinput SQL = update StuffInfo set SDept=39。 amp。, SPosition=39。 amp。 where SID=39。 amp。 TransactSQL (SQL) SQL = update AlterationInfo set AOldDept=39。 amp。,ANewDept=39。 39。 amp。 39。 SQL = SQL amp。 amp。 ID TransactSQL (SQL) MsgBox 已經(jīng)修改信息!, vbOKOnly + vbExclamation, 修改結(jié)果! Unload Me With 39。重新綁定記錄集 .ReBind End With End If End IfEnd SubPrivate Sub Form_Load() Dim SQL As String Dim rs As New Dim firstname As String If flag = 1 Then SQL = select SID,SName,SDept,SPosition from StuffInfo order by SID Set rs = TransactSQL(SQL) If = False Then