數(shù)據(jù)庫(kù)課程設(shè)計(jì)-員工信息管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p>  設(shè)計(jì)名稱:?jiǎn)T工信息管理系統(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>  用戶注冊(cè)</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)加深對(duì)數(shù)據(jù)庫(kù)系統(tǒng)原理、軟件工程、程序設(shè)計(jì)語(yǔ)言的理論知識(shí)的理解和應(yīng)用水平。</p><p>  2)通過(guò)設(shè)計(jì)實(shí)際的數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用課題,進(jìn)一步熟悉數(shù)據(jù)庫(kù)管理系統(tǒng)的操作技術(shù)

5、,提高動(dòng)手能力,提高分析問(wèn)題和解決問(wèn)題的能力。</p><p>  3)通過(guò)設(shè)計(jì),掌握數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)綜合開(kāi)發(fā)的方法與技能。</p><p>  設(shè)計(jì)環(huán)境或器材、原理與說(shuō)明:</p><p><b>  VB 6.0</b></p><p>  SQL SERVER?。玻埃埃?lt;/p><p>  設(shè)

6、計(jì)過(guò)程(步驟)或程序代碼:</p><p><b>  1 需求分析</b></p><p><b>  1.1系統(tǒng)需求分析</b></p><p>  在人才過(guò)剩的今天,企業(yè)對(duì)于有用人才的需求逐步加大,企業(yè)內(nèi)部的人事變動(dòng)和部門規(guī)劃也開(kāi)始加速,傳統(tǒng)的人事檔案已經(jīng)不能滿足各個(gè)企業(yè)的人員流動(dòng)速度,迫使人們起用新的管理方法來(lái)管

7、理員工的相關(guān)信息??茖W(xué)技術(shù)日新月異的進(jìn)步,讓人類生活發(fā)生了巨大的變化,計(jì)算機(jī)技術(shù)的飛速發(fā)展,使各行各業(yè)在計(jì)算機(jī)技術(shù)應(yīng)用方面得到了廣泛的普及和使用。信息化時(shí)代的到來(lái)成為不可抗拒的潮流,人類文明正在進(jìn)入一個(gè)嶄新的時(shí)代。因此,員工管理系統(tǒng)也以方便、快捷、費(fèi)用低、綠色環(huán)保的優(yōu)點(diǎn)正慢慢地進(jìn)入各個(gè)行業(yè)和領(lǐng)域,將傳統(tǒng)的員工管理方式徹底的解脫出來(lái),提高效率,減輕工人人員以往繁忙的工作,加速信息的更新速度,使企業(yè)管理層第一時(shí)間了解到員工的信息,從而進(jìn)一步

8、的進(jìn)行對(duì)員工的調(diào)配。</p><p><b>  功能需求詳細(xì)說(shuō)明:</b></p><p><b>  —增加—</b></p><p>  增加員工的基本信息、考勤信息</p><p><b>  —編輯—</b></p><p>  用戶可以對(duì)員工

9、信息、考勤信息進(jìn)行刪除</p><p>  用戶可以對(duì)員工的姓名、編號(hào)等員工基本信息進(jìn)行修改</p><p>  用戶可以對(duì)員工的出勤天數(shù)、請(qǐng)假天數(shù)等考勤信息進(jìn)行修改</p><p><b>  —查詢—</b></p><p>  用戶可以根據(jù)姓名、編號(hào),準(zhǔn)確的查到要找的員工,也可以選擇部門,查看選中的部門的所有員工。

10、</p><p><b>  1.2可行性分析</b></p><p>  本次課程設(shè)計(jì)題目:“員工信息管理系統(tǒng)”,主要目的是編制一個(gè)登陸系統(tǒng),連接數(shù)據(jù)庫(kù)系統(tǒng),用以實(shí)現(xiàn)員工個(gè)人信息與考勤信息的管理。同時(shí)對(duì)整個(gè)系統(tǒng)的分析、設(shè)計(jì)過(guò)程給出一個(gè)完整的論證。</p><p>  由于本系統(tǒng)管理的對(duì)象簡(jiǎn)單,且每個(gè)數(shù)據(jù)內(nèi)容之間都具有關(guān)聯(lián)性,涉及過(guò)程并不是很復(fù)

11、雜。因此,比較適合于采用數(shù)據(jù)庫(kù)管理。在技術(shù)難度方面,由于有指導(dǎo)老師的指導(dǎo)和相關(guān)參考文獻(xiàn),特別是網(wǎng)上和圖書(shū)館資料,特別是參考其它程序的功能,因此完全可以實(shí)現(xiàn)。</p><p><b>  數(shù)據(jù)庫(kù)的概念設(shè)計(jì)</b></p><p><b>  實(shí)體設(shè)計(jì):</b></p><p>  員工(員工編號(hào),姓名,性別,出生日期,籍貫,

12、專業(yè),學(xué)歷編號(hào),職稱編號(hào),職務(wù)編號(hào),部門編號(hào),參加工作時(shí)間,進(jìn)入公司時(shí)間,員工備注,政治面貌,員工技術(shù)特長(zhǎng),畢業(yè)學(xué)校,用工性質(zhì),工資等級(jí),合同期限)</p><p>  考勤(員工編號(hào),考勤日期,姓名,應(yīng)出勤天數(shù),遲到次數(shù),早退次數(shù),請(qǐng)假天數(shù),曠工天數(shù),加班天數(shù),加班天數(shù),補(bǔ)休天數(shù),加班費(fèi),扣款,備注)</p><p>  根據(jù)以上需求分析,可畫(huà)出E-R模型圖(圖1.1):</p&g

13、t;<p><b>  圖1.1</b></p><p><b>  E-R圖</b></p><p>  3 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)</p><p>  根據(jù)系統(tǒng)功能設(shè)計(jì)的要求以及功能模塊的劃分,對(duì)員工信息管理系統(tǒng)可以列出以</p><p>  下數(shù)據(jù)項(xiàng)及數(shù)據(jù)結(jié)構(gòu):</p>

14、<p>  員工個(gè)人基本信息:包括員工編號(hào)、姓名、性別、出生日期、籍貫、專業(yè)、學(xué)歷編號(hào)、職稱編號(hào)、職務(wù)編號(hào)、部門編號(hào)、參加工作時(shí)間、進(jìn)入公司時(shí)間、員工備注、政治面貌、員工技術(shù)特長(zhǎng)、畢業(yè)學(xué)校、用工性質(zhì)、合同期限。</p><p>  員工考勤基本信息:包括員工編號(hào)、姓名、應(yīng)出勤天數(shù)、遲到次數(shù)、早退次數(shù)、請(qǐng)假天數(shù)、曠工天數(shù)、加班天數(shù)、加班天數(shù)、補(bǔ)休天數(shù)、加班費(fèi)、扣款、備注。</p><

15、p>  部門信息:包括部門編號(hào)、部門名稱、部門簡(jiǎn)介</p><p>  職稱信息:包括職稱序號(hào)、職稱名稱、備注</p><p>  學(xué)歷信息:包括學(xué)歷序號(hào)、學(xué)歷名稱、備注</p><p>  職務(wù)信息:包括職務(wù)序號(hào)、職務(wù)名稱、備注</p><p>  用戶信息:包括用戶的帳號(hào)及密碼。</p><p><b&

16、gt;  數(shù)據(jù)庫(kù)的物理設(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ù)庫(kù),建立如下數(shù)據(jù)庫(kù)表(表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ù)庫(kù)建立與初始化</p><p>  4.2.1 建立數(shù)據(jù)庫(kù)</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('錯(cuò)誤!姓名中不可出現(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ù)庫(kù)連接語(yǔ)句</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ù)庫(kù)出錯(cuò)!"</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ù)庫(kù)</b></p><p>  Function ConnectToDatabase() As Boolean</p><p>  On Error GoTo ERR_CONN</p><p>  &#

44、39;設(shè)置服務(wù)器名稱,數(shù)據(jù)庫(kù)名稱,登錄名(此時(shí)假設(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ù)庫(kù)方法如下:</p><p>  打開(kāi)我的電腦---控制面板---管理工具。</p><p>  雙擊“數(shù)據(jù)源(ODBC)”

47、,打開(kāi)“ODBC數(shù)據(jù)源管理器”對(duì)話框,如圖(圖1.3)所示。</p><p>  在“系統(tǒng)DSN”選項(xiàng)卡下,單擊“添加”按鈕,彈出如圖(圖1.4)所示對(duì)話框,在該對(duì)話框中選擇SQL Server選項(xiàng)。</p><p>  單擊“完成”按鈕。 </p><p>  在該對(duì)話框中輸入數(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)員工個(gè)人信息管理和員工考勤信息管理。其功能結(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)證通過(guò)的用戶方可進(jìn)入員工

51、信息管理系統(tǒng)操作主頁(yè)面。</p><p><b>  2、新增功能模塊</b></p><p>  包含2個(gè)功能模塊:?jiǎn)T工個(gè)人信息的添加、員工考勤信息的添加</p><p><b>  3、編輯功能模塊</b></p><p>  包含2個(gè)功能模塊:?jiǎn)T工個(gè)人信息的刪除、按月份進(jìn)行員工考勤信息編輯與刪

52、除</p><p><b>  4、查詢功能模塊</b></p><p>  包含2個(gè)功能模塊:?jiǎn)T工個(gè)人信息查詢、按月份進(jìn)行員工考勤信息查詢</p><p>  系統(tǒng)操作流程圖(圖1.8):</p><p><b>  圖1.8:</b></p><p>  設(shè)計(jì)結(jié)果與分析(

53、可以加頁(yè)):</p><p>  1、員工信息查詢 (frmEmpInfo2.frm)</p><p>  圖1.9:?jiǎn)T工信息查詢界面</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è)置錯(cuò)誤陷阱</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>  '打開(kāi)一個(gè)數(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>  '填寫(xiě)數(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 "請(qǐng)檢查輸入的數(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) = "工號(hào)"</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è)置各列的對(duì)齊方式</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)制跨越整個(gè)行選擇</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>  '按工號(hào)查詢</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>  '按時(shí)間查詢</b></p><p>  If cboCheckYear = "" Then</p><p>  If cboCheckMonth = "" Then '年月都為空時(shí)</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;打開(kāi)一個(gè)數(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>  '填寫(xiě)數(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) = "工號(hào)"</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) = "考勤時(shí)間"</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) = "請(qǐng)假"</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è)置各列的對(duì)齊方式</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)制跨越整個(gè)行選擇</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è)置了錯(cuò)誤陷阱語(yǔ)句:</p><p>  On Error GoTo ERR_CONN<

134、;/p><p><b>  ERR_CONN:</b></p><p>  MsgBox "請(qǐng)檢查輸入的數(shù)據(jù)是否有效"</p><p>  所以系統(tǒng)一般不會(huì)出現(xiàn)輸入導(dǎo)致系統(tǒng)崩潰現(xiàn)象。</p><p>  例如,圖(2.1)中生日年份越界會(huì)出現(xiàn)警告:</p><p><b>

135、;  圖2.1</b></p><p>  2)系統(tǒng)設(shè)置了部分主要信息的錯(cuò)誤提示(輸入不能為空、姓名中不能出現(xiàn)數(shù)字、工號(hào)中只能出現(xiàn)數(shù)字、生日必須合法輸入、出勤次數(shù)必須大于缺勤、請(qǐng)假次數(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 "姓名不能為空,請(qǐng)重新輸入!", 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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論