版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p> 設(shè)計(jì)名稱:員工信息管理系統(tǒng) 日期:2009年5月3日 </p><p><b> 設(shè)計(jì)內(nèi)容:</b></p><p><b> 員工信息添加</b></p><
2、p><b> 員工信息修改</b></p><p><b> 員工信息刪除</b></p><p> 員工信息查詢(多種方式)</p><p><b> 員工考勤信息添加</b></p><p><b> 員工考勤信息修改</b></
3、p><p><b> 員工考勤信息刪除</b></p><p><b> 員工考勤信息查詢</b></p><p><b> 用戶注冊</b></p><p> 10、SQL基本表建立</p><p> 11、SQL權(quán)限、索引、觸發(fā)器、函數(shù)的創(chuàng)建&
4、lt;/p><p><b> 12、ODBC連接</b></p><p><b> 設(shè)計(jì)目的與要求:</b></p><p> 1)加深對數(shù)據(jù)庫系統(tǒng)原理、軟件工程、程序設(shè)計(jì)語言的理論知識的理解和應(yīng)用水平。</p><p> 2)通過設(shè)計(jì)實(shí)際的數(shù)據(jù)庫系統(tǒng)應(yīng)用課題,進(jìn)一步熟悉數(shù)據(jù)庫管理系統(tǒng)的操作技術(shù)
5、,提高動手能力,提高分析問題和解決問題的能力。</p><p> 3)通過設(shè)計(jì),掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)綜合開發(fā)的方法與技能。</p><p> 設(shè)計(jì)環(huán)境或器材、原理與說明:</p><p><b> VB 6.0</b></p><p> SQL?。樱牛遥郑牛摇。玻埃埃?lt;/p><p> 設(shè)
6、計(jì)過程(步驟)或程序代碼:</p><p><b> 1 需求分析</b></p><p><b> 1.1系統(tǒng)需求分析</b></p><p> 在人才過剩的今天,企業(yè)對于有用人才的需求逐步加大,企業(yè)內(nèi)部的人事變動和部門規(guī)劃也開始加速,傳統(tǒng)的人事檔案已經(jīng)不能滿足各個企業(yè)的人員流動速度,迫使人們起用新的管理方法來管
7、理員工的相關(guān)信息??茖W(xué)技術(shù)日新月異的進(jìn)步,讓人類生活發(fā)生了巨大的變化,計(jì)算機(jī)技術(shù)的飛速發(fā)展,使各行各業(yè)在計(jì)算機(jī)技術(shù)應(yīng)用方面得到了廣泛的普及和使用。信息化時代的到來成為不可抗拒的潮流,人類文明正在進(jìn)入一個嶄新的時代。因此,員工管理系統(tǒng)也以方便、快捷、費(fèi)用低、綠色環(huán)保的優(yōu)點(diǎn)正慢慢地進(jìn)入各個行業(yè)和領(lǐng)域,將傳統(tǒng)的員工管理方式徹底的解脫出來,提高效率,減輕工人人員以往繁忙的工作,加速信息的更新速度,使企業(yè)管理層第一時間了解到員工的信息,從而進(jìn)一步
8、的進(jìn)行對員工的調(diào)配。</p><p><b> 功能需求詳細(xì)說明:</b></p><p><b> —增加—</b></p><p> 增加員工的基本信息、考勤信息</p><p><b> —編輯—</b></p><p> 用戶可以對員工
9、信息、考勤信息進(jìn)行刪除</p><p> 用戶可以對員工的姓名、編號等員工基本信息進(jìn)行修改</p><p> 用戶可以對員工的出勤天數(shù)、請假天數(shù)等考勤信息進(jìn)行修改</p><p><b> —查詢—</b></p><p> 用戶可以根據(jù)姓名、編號,準(zhǔn)確的查到要找的員工,也可以選擇部門,查看選中的部門的所有員工。
10、</p><p><b> 1.2可行性分析</b></p><p> 本次課程設(shè)計(jì)題目:“員工信息管理系統(tǒng)”,主要目的是編制一個登陸系統(tǒng),連接數(shù)據(jù)庫系統(tǒng),用以實(shí)現(xiàn)員工個人信息與考勤信息的管理。同時對整個系統(tǒng)的分析、設(shè)計(jì)過程給出一個完整的論證。</p><p> 由于本系統(tǒng)管理的對象簡單,且每個數(shù)據(jù)內(nèi)容之間都具有關(guān)聯(lián)性,涉及過程并不是很復(fù)
11、雜。因此,比較適合于采用數(shù)據(jù)庫管理。在技術(shù)難度方面,由于有指導(dǎo)老師的指導(dǎo)和相關(guān)參考文獻(xiàn),特別是網(wǎng)上和圖書館資料,特別是參考其它程序的功能,因此完全可以實(shí)現(xiàn)。</p><p><b> 數(shù)據(jù)庫的概念設(shè)計(jì)</b></p><p><b> 實(shí)體設(shè)計(jì):</b></p><p> 員工(員工編號,姓名,性別,出生日期,籍貫,
12、專業(yè),學(xué)歷編號,職稱編號,職務(wù)編號,部門編號,參加工作時間,進(jìn)入公司時間,員工備注,政治面貌,員工技術(shù)特長,畢業(yè)學(xué)校,用工性質(zhì),工資等級,合同期限)</p><p> 考勤(員工編號,考勤日期,姓名,應(yīng)出勤天數(shù),遲到次數(shù),早退次數(shù),請假天數(shù),曠工天數(shù),加班天數(shù),加班天數(shù),補(bǔ)休天數(shù),加班費(fèi),扣款,備注)</p><p> 根據(jù)以上需求分析,可畫出E-R模型圖(圖1.1):</p&g
13、t;<p><b> 圖1.1</b></p><p><b> E-R圖</b></p><p> 3 數(shù)據(jù)庫的邏輯設(shè)計(jì)</p><p> 根據(jù)系統(tǒng)功能設(shè)計(jì)的要求以及功能模塊的劃分,對員工信息管理系統(tǒng)可以列出以</p><p> 下數(shù)據(jù)項(xiàng)及數(shù)據(jù)結(jié)構(gòu):</p>
14、<p> 員工個人基本信息:包括員工編號、姓名、性別、出生日期、籍貫、專業(yè)、學(xué)歷編號、職稱編號、職務(wù)編號、部門編號、參加工作時間、進(jìn)入公司時間、員工備注、政治面貌、員工技術(shù)特長、畢業(yè)學(xué)校、用工性質(zhì)、合同期限。</p><p> 員工考勤基本信息:包括員工編號、姓名、應(yīng)出勤天數(shù)、遲到次數(shù)、早退次數(shù)、請假天數(shù)、曠工天數(shù)、加班天數(shù)、加班天數(shù)、補(bǔ)休天數(shù)、加班費(fèi)、扣款、備注。</p><
15、p> 部門信息:包括部門編號、部門名稱、部門簡介</p><p> 職稱信息:包括職稱序號、職稱名稱、備注</p><p> 學(xué)歷信息:包括學(xué)歷序號、學(xué)歷名稱、備注</p><p> 職務(wù)信息:包括職務(wù)序號、職務(wù)名稱、備注</p><p> 用戶信息:包括用戶的帳號及密碼。</p><p><b&
16、gt; 數(shù)據(jù)庫的物理設(shè)計(jì)</b></p><p> 4.1數(shù)據(jù)字典與關(guān)系圖</p><p> 根據(jù)系統(tǒng)需求及邏輯結(jié)構(gòu)設(shè)計(jì),本網(wǎng)站基于SQL Server 2000數(shù)據(jù)庫,建立如下數(shù)據(jù)庫表(表1.1):</p><p><b> 表1.1</b></p><p><b> 注:波浪線為主鍵。
17、</b></p><p><b> 圖1.2</b></p><p><b> 關(guān)系圖</b></p><p> 4.2數(shù)據(jù)庫建立與初始化</p><p> 4.2.1 建立數(shù)據(jù)庫</p><p> Create table employee</p
18、><p><b> (</b></p><p> emp_id int(4) not null,</p><p> emp_name nvarchar(20) not null,</p><p> sex nvarchar(2) not null,</p><p> birthday sma
19、ldatetime(4) not null,</p><p> native nvarchar(20),</p><p> profession nvarchar(20),</p><p> edu_id int(4),not null,</p><p> title_id int(4),not null,</p>&l
20、t;p> dept_id int(4),not null,</p><p> duty_id int(4),not null,</p><p> emp_date1 smaldatetime(4),not null,</p><p> emp_date2 smaldatetime(4),not null,</p><p> e
21、mp_des nvarchar(255),</p><p> zzmm nvarchar(50),</p><p> ygjstc nvarchar(50),</p><p> bisx nvarchar(50),</p><p> ygxz nvarchar(50),</p><p> htqx nvarc
22、har(50),</p><p> constraint EmPK primary key(emp_id),</p><p> constraint EduFK foreign key(edu_id) references education(edu_id),</p><p> constraint TitleFK foreign key(title_id)
23、references education(title_id),</p><p> constraint DuFK foreign key(duty_id) references education(duty_id),</p><p> constraint DeFK foreign key(dept_id) references education(dept_id),</p>
24、;<p><b> )</b></p><p> Create table title</p><p><b> (</b></p><p> title_id int(4) not null,</p><p> title_name nvarchar(20) not nul
25、l,</p><p> title_des nvarchar(255)</p><p> constraint TiPK primary key(title_id),</p><p><b> )</b></p><p> Create table education</p><p>&l
26、t;b> (</b></p><p> edu_id int(4) not null,</p><p> edu _name nvarchar(20) not null,</p><p> edu _des nvarchar(255)</p><p> constraint EdPK primary key(edu
27、 _id),</p><p><b> )</b></p><p> Create table duty</p><p><b> (</b></p><p> duty _id int(4) not null,</p><p> duty _name nvarch
28、ar(20) not null,</p><p> duty _des nvarchar(255)</p><p> constraint DuPK primary key(duty _id),</p><p><b> )</b></p><p> Create table department</p&g
29、t;<p><b> (</b></p><p> dept_id int(4) not null,</p><p> dept _name nvarchar(20) not null,</p><p> dept _des nvarchar(255)</p><p> constraint De
30、PK primary key(dept _id),</p><p><b> )</b></p><p><b> 安全性(權(quán)限)</b></p><p> grant all privileges on employee to sasa</p><p> grant all privile
31、ges on checkin to sasa</p><p> grant all privileges on sysuser to sasa</p><p> grant all privileges on duty to sasa</p><p> grant all privileges on title to sasa</p><p
32、> grant all privileges on department to sasa</p><p> grant all pr ivileges on education to sasa</p><p><b> 觸發(fā)器</b></p><p> 功能:使姓名中不能出現(xiàn)數(shù)字。</p><p> CR
33、EATE TRIGGER T_IN </p><p> ON dbo.employee</p><p> FOR INSERT,Update</p><p><b> AS </b></p><p> IF EXISTS ( </p><p><b> SELECT * <
34、;/b></p><p> FROM employee </p><p> WHERE emp_name like '%[0-9]%' </p><p><b> ) </b></p><p><b> BEGIN </b></p><p>
35、 RAISERROR('錯誤!姓名中不可出現(xiàn)數(shù)字',16,1) </p><p><b> ROLLBACK </b></p><p><b> RETURN </b></p><p><b> END</b></p><p><b> 建立索
36、引</b></p><p> create cluster index pk_duty on duty_id</p><p> create cluster index pk_department on dept_id</p><p> create cluster index pk_title on title_id</p><
37、;p> create cluster index pk_education on edu_id</p><p> create cluster index pk_sysuser on user_id</p><p> create cluster index pk_employee on emp_id</p><p> create cluster i
38、ndex pk_checkin on (emp_id,check_ym)</p><p><b> VB數(shù)據(jù)庫連接語句</b></p><p> Option Explicit</p><p> Public dbConn As New ADODB.Connection</p><p> Public login
39、User As String</p><p> Public loginOK As Boolean</p><p> Public cmdType As String</p><p> Public tUser_id As String</p><p> Public tDept_id As Integer</p>&l
40、t;p> Public tEmp_id As Integer</p><p> Public tCheck_ym As String</p><p> Public tQx As String</p><p> Sub Main()</p><p> If ConnectToDatabase = False Then</
41、p><p> MsgBox "連接數(shù)據(jù)庫出錯!"</p><p><b> End</b></p><p><b> End If </b></p><p> loginOK = False</p><p> cmdType = "&quo
42、t;</p><p> frmLogin.Show vbModal</p><p> Unload frmLogin</p><p> If loginOK Then</p><p> MDIForm1.Show</p><p><b> End If</b></p>&l
43、t;p><b> End Sub</b></p><p><b> '連接到數(shù)據(jù)庫</b></p><p> Function ConnectToDatabase() As Boolean</p><p> On Error GoTo ERR_CONN</p><p>
44、39;設(shè)置服務(wù)器名稱,數(shù)據(jù)庫名稱,登錄名(此時假設(shè)密碼為空)</p><p> dbConn.ConnectionString = "dsn=rsgl;Database=man;uid=ZFS;pwd="</p><p> 'dbConn.ConnectionString = "Provider=msdasql;Database=man;serve
45、r=computer;uid=sa;pwd="</p><p> dbConn.Open</p><p> ConnectToDatabase = True</p><p> Exit Function</p><p><b> ERR_CONN:</b></p><p> C
46、onnectToDatabase = False</p><p> End Function</p><p><b> ODBC連接</b></p><p> 連接數(shù)據(jù)庫方法如下:</p><p> 打開我的電腦---控制面板---管理工具。</p><p> 雙擊“數(shù)據(jù)源(ODBC)”
47、,打開“ODBC數(shù)據(jù)源管理器”對話框,如圖(圖1.3)所示。</p><p> 在“系統(tǒng)DSN”選項(xiàng)卡下,單擊“添加”按鈕,彈出如圖(圖1.4)所示對話框,在該對話框中選擇SQL Server選項(xiàng)。</p><p> 單擊“完成”按鈕。 </p><p> 在該對話框中輸入數(shù)據(jù)源名“emp”、服務(wù)器名,按要求填空完成后,即可完成數(shù)據(jù)源的連接設(shè)置(圖1.6)。&
48、lt;/p><p><b> 圖1.3</b></p><p> 圖1.4 圖1.5</p><p><b> 圖1.6</b></p><p><b> 5 應(yīng)用程序設(shè)計(jì)</b></p&
49、gt;<p><b> 5.1系統(tǒng)功能分析</b></p><p> 員工信息管理系統(tǒng)基于用戶驗(yàn)證登錄的方式實(shí)現(xiàn)員工個人信息管理和員工考勤信息管理。其功能結(jié)構(gòu)如圖(圖1.7):</p><p><b> 圖1.7:</b></p><p><b> 系統(tǒng)功能結(jié)構(gòu)圖</b><
50、/p><p> 5.2系統(tǒng)功能模塊設(shè)計(jì)</p><p> 員工信息管理系統(tǒng)主要包含用戶登錄、新增、編輯、查詢功能模塊。</p><p><b> 1、用戶登陸</b></p><p> 員工信息管理系統(tǒng)采用用戶名及密碼驗(yàn)證方式,進(jìn)入員工信息管理系統(tǒng)前,用戶必須在登錄窗口輸入用戶名及密碼,只有驗(yàn)證通過的用戶方可進(jìn)入員工
51、信息管理系統(tǒng)操作主頁面。</p><p><b> 2、新增功能模塊</b></p><p> 包含2個功能模塊:員工個人信息的添加、員工考勤信息的添加</p><p><b> 3、編輯功能模塊</b></p><p> 包含2個功能模塊:員工個人信息的刪除、按月份進(jìn)行員工考勤信息編輯與刪
52、除</p><p><b> 4、查詢功能模塊</b></p><p> 包含2個功能模塊:員工個人信息查詢、按月份進(jìn)行員工考勤信息查詢</p><p> 系統(tǒng)操作流程圖(圖1.8):</p><p><b> 圖1.8:</b></p><p> 設(shè)計(jì)結(jié)果與分析(
53、可以加頁):</p><p> 1、員工信息查詢 (frmEmpInfo2.frm)</p><p> 圖1.9:員工信息查詢界面</p><p><b> 主要代碼如下: </b></p><p> Private Sub Command1_Click()</p><p> Dim
54、strId As String</p><p> Dim strName As String</p><p> Dim strDept As String</p><p> Dim strTitle As String</p><p> Dim strDuty As String</p><p> Dim s
55、trEdu As String</p><p> Dim strSex As String</p><p><b> '設(shè)置錯誤陷阱</b></p><p> On Error GoTo ERR_CONN</p><p> If Trim(MskId) = "" Then</p&
56、gt;<p> strId = ""</p><p><b> Else</b></p><p> strId = "and a.emp_id= '" & MskId & "'"</p><p><b> End If&l
57、t;/b></p><p> If Trim(Text2) = "" Then</p><p> strName = ""</p><p><b> Else</b></p><p> strName = "and a.emp_name='"
58、; & Trim(Text2) & "'"</p><p><b> End If</b></p><p> If cboDept.ListIndex = 0 Then</p><p> strDept = ""</p><p><b>
59、Else</b></p><p> strDept = "and c.dept_name='" & cboDept.Text & "'"</p><p><b> End If</b></p><p> If cboTitle.ListIndex = 0
60、Then</p><p> strTitle = ""</p><p><b> Else</b></p><p> strTitle = "and e.title_name='" & cboTitle.Text & "'"</p>
61、<p><b> End If</b></p><p> If cboDuty.ListIndex = 0 Then</p><p> strDuty = ""</p><p><b> Else</b></p><p> strDuty = "an
62、d d.duty_name='" & cboDuty.Text & "'"</p><p><b> End If</b></p><p> If cboEdu.ListIndex = 0 Then</p><p> strEdu = ""</p>
63、;<p><b> Else</b></p><p> strEdu = "and b.edu_name='" & cboEdu.Text & "'"</p><p><b> End If</b></p><p> If cbo
64、Sex.ListIndex = 0 Then</p><p> strSex = ""</p><p><b> Else</b></p><p> strSex = "and a.sex='" & cboSex.Text & "'"</p&
65、gt;<p><b> End If</b></p><p><b> '打開一個數(shù)據(jù)集</b></p><p> strSql = "select a.emp_id,a.emp_name,a.sex,b.edu_name,c.dept_name,d.duty_name,e.title_name from e
66、mployee a,education b,department c,duty d,title e where a.edu_id=b.edu_id and a.dept_id=c.dept_id and a.duty_id=d.duty_id and a.title_id=e.title_id " & strId & " " & strName & " &quo
67、t; & strDept & " " & strTitle & " " & strTitle & "" & strDuty & " " & strEdu & " " & strSex & " order by a.emp_id&quo
68、t;</p><p> rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p> If rs.EOF Then</p><p> Label9 = "找到0條記錄"</p><p> flxShow.Rows = 1</p>
69、<p><b> Else</b></p><p><b> '填寫數(shù)據(jù)</b></p><p> flxShow.Rows = 1</p><p> Do While Not rs.EOF</p><p> flxShow.Rows = flxShow.Rows + 1
70、</p><p> flxShow.TextMatrix(flxShow.Rows - 1, 0) = rs.Fields(0).Value</p><p> For i = 2 To rs.Fields.Count</p><p> flxShow.TextMatrix(flxShow.Rows - 1, i) = rs.Fields(i - 1).Valu
71、e</p><p><b> Next i</b></p><p> rs.MoveNext</p><p><b> Loop</b></p><p> Label9 = "找到" & flxShow.Rows - 1 & "條記錄"
72、</p><p><b> End If</b></p><p><b> rs.Close</b></p><p><b> Exit Sub</b></p><p><b> ERR_CONN:</b></p><p>
73、 MsgBox "請檢查輸入的數(shù)據(jù)是否有效"</p><p><b> End Sub</b></p><p> Private Sub Command3_Click()</p><p><b> Unload Me</b></p><p><b> End
74、Sub</b></p><p> Private Sub Form_Load()</p><p><b> '性別</b></p><p> cboSex.AddItem ""</p><p> cboSex.AddItem "男"</p>
75、<p> cboSex.AddItem "女"</p><p> cboSex.ListIndex = 0</p><p><b> '學(xué)歷</b></p><p> strSql = "Select edu_id,edu_name from education Order By edu
76、_id"</p><p> rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p> cboEdu.AddItem ""</p><p> Do While Not rs.EOF</p><p> cboEdu.AddItem (
77、rs.Fields("edu_name").Value)</p><p> cboEdu.ItemData(cboEdu.NewIndex) = rs.Fields("edu_id").Value</p><p> rs.MoveNext</p><p><b> Loop</b></p>
78、;<p><b> rs.Close</b></p><p> cboEdu.ListIndex = 0</p><p><b> '部門</b></p><p> strSql = "Select dept_id,dept_name from department Order By
79、 dept_id"</p><p> rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p> cboDept.AddItem ""</p><p> Do While Not rs.EOF</p><p> cboDept.Ad
80、dItem (rs.Fields("dept_name").Value)</p><p> cboDept.ItemData(cboDept.NewIndex) = rs.Fields("dept_id").Value</p><p> rs.MoveNext</p><p><b> Loop</b&g
81、t;</p><p><b> rs.Close</b></p><p> cboDept.ListIndex = 0</p><p><b> '職務(wù)</b></p><p> strSql = "Select duty_id,duty_name from duty Or
82、der By duty_id"</p><p> rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p> cboDuty.AddItem ""</p><p> Do While Not rs.EOF</p><p> cboD
83、uty.AddItem (rs.Fields("duty_name").Value)</p><p> cboDuty.ItemData(cboDuty.NewIndex) = rs.Fields("duty_id").Value</p><p> rs.MoveNext</p><p><b> Loop&l
84、t;/b></p><p><b> rs.Close</b></p><p> cboDuty.ListIndex = 0</p><p><b> '職稱</b></p><p> strSql = "Select title_id,title_name from
85、 title Order By title_id"</p><p> rs.Open strSql, dbConn, adOpenForwardOnly, adLockReadOnly</p><p> cboTitle.AddItem ""</p><p> Do While Not rs.EOF</p><
86、p> cboTitle.AddItem (rs.Fields("title_name").Value)</p><p> cboTitle.ItemData(cboTitle.NewIndex) = rs.Fields("title_id").Value</p><p> rs.MoveNext</p><p>&
87、lt;b> Loop</b></p><p><b> rs.Close</b></p><p> cboTitle.ListIndex = 0</p><p><b> '設(shè)置列數(shù)</b></p><p> flxShow.Cols = 8</p>
88、<p><b> '列標(biāo)題</b></p><p> flxShow.TextMatrix(0, 0) = "工號"</p><p> flxShow.TextMatrix(0, 1) = ""</p><p> flxShow.TextMatrix(0, 2) = "
89、;姓名"</p><p> flxShow.TextMatrix(0, 3) = "性別"</p><p> flxShow.TextMatrix(0, 4) = "學(xué)歷"</p><p> flxShow.TextMatrix(0, 5) = "部門"</p><p&g
90、t; flxShow.TextMatrix(0, 6) = "職務(wù)"</p><p> flxShow.TextMatrix(0, 7) = "職稱"</p><p><b> '設(shè)置列寬</b></p><p> flxShow.ColWidth(0) = 1000</p>
91、<p> flxShow.ColWidth(1) = 0</p><p> flxShow.ColWidth(2) = 1400</p><p> flxShow.ColWidth(3) = 800</p><p> flxShow.ColWidth(4) = 1400</p><p> flxShow.ColWidth
92、(5) = 1400</p><p> flxShow.ColWidth(6) = 1400</p><p> flxShow.ColWidth(7) = 1410</p><p> '設(shè)置各列的對齊方式</p><p> For i = 0 To 7</p><p> flxShow.ColAlig
93、nment(i) = 0</p><p><b> Next i</b></p><p><b> '表頭項(xiàng)居中</b></p><p> flxShow.FillStyle = flexFillRepeat</p><p> flxShow.Col = 0</p>&
94、lt;p> flxShow.Row = 0</p><p> flxShow.RowSel = 1</p><p> flxShow.ColSel = flxShow.Cols - 1</p><p> flxShow.CellAlignment = 4</p><p> flxShow.Rows = 1</p>
95、<p> '強(qiáng)制跨越整個行選擇</p><p> flxShow.SelectionMode = flexSelectionByRow</p><p><b> End Sub</b></p><p> 2、員工考勤查詢 (frmCheckInfo2.frm )</p><p><b&
96、gt; 員工考勤查詢界面</b></p><p><b> 主要代碼如下:</b></p><p> Private Sub Command3_Click()</p><p> Dim strId As String</p><p> Dim strName As String</p>
97、<p> Dim strDept As String</p><p> Dim strCheck As String</p><p><b> '按工號查詢</b></p><p> If Len(Trim(MskId)) = 0 Then</p><p> strId = "&q
98、uot;</p><p><b> Else</b></p><p> strId = "and a.emp_id= '" & MskId & "'"</p><p><b> End If</b></p><p><
99、;b> '按姓名查詢</b></p><p> If Len(Trim(Text1)) = 0 Then</p><p> strName = ""</p><p><b> Else</b></p><p> strName = "and b.emp_n
100、ame='" & Trim(Text1) & "'"</p><p><b> End If</b></p><p><b> '按部門查詢</b></p><p> If cboDept = "" Then</p>
101、<p> strDept = ""</p><p><b> Else</b></p><p> strDept = "and c.dept_name='" & cboDept & "'"</p><p><b> End
102、 If</b></p><p><b> '按時間查詢</b></p><p> If cboCheckYear = "" Then</p><p> If cboCheckMonth = "" Then '年月都為空時</p><p> s
103、trCheck = ""</p><p> Else '任意年份的指定月</p><p> strCheck = "and a.check_ym in ('" & Year(Date) & cboCheckMonth & "','&q
104、uot; & Year(Date) - 1 & cboCheckMonth & "')"</p><p><b> End If</b></p><p><b> Else</b></p><p> If cboCheckMonth = "" T
105、hen '指定年份的任意月</p><p> strCheck = "and a.check_ym in ('" & cboCheckYear & "01" & "','" & cboCheckYear & "02" & "',
106、39;" & cboCheckYear & "03" & "','" & cboCheckYear & "04" & "','" & cboCheckYear & "05" & "','"
107、& cboCheckYear & "06" & "','" & cboCheckYear & "03" & "','" & cboCheckYear & "07" & "','" & cboC
108、heckYear & "08" & "','" & cboCheckYear & "09" & "','" & cboCheckYear & "10" & "','" & cboCheckYear &
109、amp; "11" & "','" & cboCheckYear & "12" & "' )"</p><p> Else '指定的年月</p><p> strCheck = "and
110、 a.check_ym in('" & cboCheckYear & cboCheckMonth & "')"</p><p><b> End If</b></p><p><b> End If</b></p><p><b>
111、39;打開一個數(shù)據(jù)集</b></p><p> strSql = "select a.emp_id,b.emp_name,c.dept_name,a.check_ym,a.w_days,a.l_nums,a.e_nums,a.h_days,a.n_days from checkin a ,employee b,department c where a.emp_id = b.emp_id
112、and c.dept_id=b.dept_id " & strCheck & " " & strDept & " " & strName & " " & strId & " order by b.emp_id"</p><p> rs.Open strSql,
113、 dbConn, adOpenForwardOnly, adLockReadOnly</p><p> flxShow.Rows = 1</p><p> If rs.EOF Then</p><p><b> Else</b></p><p><b> '填寫數(shù)據(jù)</b></
114、p><p> Do While Not rs.EOF</p><p> flxShow.Rows = flxShow.Rows + 1</p><p> flxShow.TextMatrix(flxShow.Rows - 1, 0) = rs.Fields(0).Value</p><p> For i = 2 To rs.Fields.
115、Count</p><p> flxShow.TextMatrix(flxShow.Rows - 1, i) = rs.Fields(i - 1).Value</p><p><b> Next i</b></p><p> rs.MoveNext</p><p><b> Loop</b>
116、</p><p><b> End If</b></p><p> Label8 = "找到" & flxShow.Rows - 1 & "條記錄"</p><p><b> rs.Close</b></p><p><b>
117、 End Sub</b></p><p> Private Sub Form_Load()</p><p> Me.Icon = LoadPicture(App.Path & "\Graph07.ico")</p><p><b> ' 設(shè)置列數(shù)</b></p><
118、p> flxShow.Cols = 10</p><p><b> '列標(biāo)題</b></p><p> flxShow.TextMatrix(0, 0) = "工號"</p><p> flxShow.TextMatrix(0, 1) = ""</p><p>
119、; flxShow.TextMatrix(0, 2) = "姓名"</p><p> flxShow.TextMatrix(0, 3) = "部門"</p><p> flxShow.TextMatrix(0, 4) = "考勤時間"</p><p> flxShow.TextMatrix(0, 5
120、) = "應(yīng)出勤"</p><p> flxShow.TextMatrix(0, 6) = "遲到"</p><p> flxShow.TextMatrix(0, 7) = "早退"</p><p> flxShow.TextMatrix(0, 8) = "請假"</p>
121、;<p> flxShow.TextMatrix(0, 9) = "曠工"</p><p><b> '設(shè)置列寬</b></p><p> flxShow.ColWidth(0) = 1000</p><p> flxShow.ColWidth(1) = 0</p><p&g
122、t; flxShow.ColWidth(2) = 1200</p><p> flxShow.ColWidth(3) = 1200</p><p> flxShow.ColWidth(4) = 1200</p><p> flxShow.ColWidth(5) = 820</p><p> flxShow.ColWidth(6) =
123、 820</p><p> flxShow.ColWidth(7) = 820</p><p> flxShow.ColWidth(8) = 820</p><p> flxShow.ColWidth(9) = 900</p><p> '設(shè)置各列的對齊方式</p><p> For i = 0 To
124、 9</p><p> flxShow.ColAlignment(i) = 0</p><p><b> Next i</b></p><p><b> '表頭項(xiàng)居中</b></p><p> flxShow.FillStyle = flexFillRepeat</p>
125、<p> flxShow.Col = 0</p><p> flxShow.Row = 0</p><p> flxShow.RowSel = 1</p><p> flxShow.ColSel = flxShow.Cols - 1</p><p> flxShow.CellAlignment = 4</p>
126、<p> '強(qiáng)制跨越整個行選擇</p><p> flxShow.SelectionMode = flexSelectionByRow</p><p> flxShow.Rows = 1</p><p> cboCheckYear.AddItem ""</p><p> cboCheckYe
127、ar.AddItem Year(Date)</p><p> cboCheckYear.AddItem Year(Date) - 1</p><p> cboCheckYear.ListIndex = 1</p><p> cboCheckMonth.AddItem ""</p><p> For i = 1 To
128、 12</p><p> If i < 10 Then</p><p> cboCheckMonth.AddItem "0" & i</p><p><b> Else</b></p><p> cboCheckMonth.AddItem i</p><p&g
129、t;<b> End If</b></p><p> If i = Month(Date) Then</p><p> cboCheckMonth.ListIndex = cboCheckMonth.NewIndex</p><p><b> End If</b></p><p><b
130、> Next i</b></p><p><b> '部門</b></p><p> strSql = "Select dept_id,dept_name from department Order By dept_id"</p><p> rs.Open strSql, dbConn, a
131、dOpenForwardOnly, adLockReadOnly</p><p> cboDept.AddItem ""</p><p> Do While Not rs.EOF</p><p> cboDept.AddItem (rs.Fields("dept_name").Value)</p><
132、p> cboDept.ItemData(cboDept.NewIndex) = rs.Fields("dept_id").Value</p><p> rs.MoveNext</p><p><b> Loop</b></p><p><b> rs.Close</b></p>
133、<p> cboDept.ListIndex = 0</p><p><b> End Sub</b></p><p> 3、系統(tǒng)特色:有較強(qiáng)的數(shù)據(jù)完整性、安全性設(shè)計(jì)</p><p> 1)系統(tǒng)中按鈕中基本都設(shè)置了錯誤陷阱語句:</p><p> On Error GoTo ERR_CONN<
134、;/p><p><b> ERR_CONN:</b></p><p> MsgBox "請檢查輸入的數(shù)據(jù)是否有效"</p><p> 所以系統(tǒng)一般不會出現(xiàn)輸入導(dǎo)致系統(tǒng)崩潰現(xiàn)象。</p><p> 例如,圖(2.1)中生日年份越界會出現(xiàn)警告:</p><p><b>
135、; 圖2.1</b></p><p> 2)系統(tǒng)設(shè)置了部分主要信息的錯誤提示(輸入不能為空、姓名中不能出現(xiàn)數(shù)字、工號中只能出現(xiàn)數(shù)字、生日必須合法輸入、出勤次數(shù)必須大于缺勤、請假次數(shù)總和):</p><p><b> 例一:</b></p><p> flag1 = False</p><p> fl
136、ag2 = False</p><p> For i = 1 To Len(Trim(txtEmp_name.Text))</p><p> If Mid(Trim(txtEmp_name.Text), i, 1) >= "0" And Mid(Trim(txtEmp_name.Text), i, 1) <= "9" Then<
137、/p><p> flag1 = True</p><p><b> End If</b></p><p><b> Next</b></p><p> For i = 1 To Len(Trim(txtEmp_id.Text))</p><p> If Mid(Trim
138、(txtEmp_id.Text), i, 1) < "0" Or Mid(Trim(txtEmp_id.Text), i, 1) > "9" Then</p><p> flag2 = True</p><p><b> End If</b></p><p><b> Next
139、</b></p><p> If Trim(txtEmp_name.Text) = "" Then</p><p> MsgBox "姓名不能為空,請重新輸入!", vbOKOnly + vbExclamation, "警告"</p><p> txtEmp_name.Text = &qu
140、ot;"</p><p> txtEmp_name.SetFocus</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> If flag1 = True Then</p><p> MsgB
141、ox "姓名不能含有數(shù)字!", vbOKOnly + vbExclamation, "警告"</p><p> txtEmp_name.Text = ""</p><p> txtEmp_name.SetFocus</p><p><b> Exit Sub</b></p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)--員工信息管理系統(tǒng)系統(tǒng)
- 數(shù)據(jù)庫sql課程設(shè)計(jì)---企業(yè)員工信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)----員工基本信息管理
- 數(shù)據(jù)庫課程設(shè)計(jì)---宿舍信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--教室信息管理系統(tǒng).
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--顧客信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)課程設(shè)計(jì)論文-醫(yī)院信息管理數(shù)據(jù)庫設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)-客房信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--教師信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--顧客信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)----藥品信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---客戶信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)-教務(wù)信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)設(shè)計(jì)
評論
0/150
提交評論