版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p> 1.引言…………………………………………………………… 2</p><p> 2.概要設(shè)計(jì)………………………………………………………. 4</p><p> 3.詳細(xì)設(shè)計(jì)………………………………………………………. 6</p><p> 4. 調(diào)試與運(yùn)
2、行結(jié)果及存在的主要問題……………………….. 16</p><p> 5. 課程設(shè)計(jì)小結(jié)…………………………………………………</p><p> 6. 參考文獻(xiàn)……………………………………………………….</p><p><b> 引言</b></p><p><b> 1.設(shè)計(jì)環(huán)境:</b>
3、;</p><p> 設(shè)計(jì)環(huán)境具體有visual basic 6.0,Microsoft SQL Server 2000.</p><p><b> 2.同組人員:</b></p><p> 完成該設(shè)計(jì)的人員為04- 3班的方靖和鄺銳強(qiáng)。</p><p><b> 3.具體分工:</b>&l
4、t;/p><p> 經(jīng)過兩人的討論分析后共同完成該題目的需求分析,概念結(jié)構(gòu)設(shè)計(jì)以及邏輯結(jié)構(gòu)的設(shè)計(jì)。在具體實(shí)施階段方靖主要負(fù)責(zé)登陸界面,各職工基本資料的界面設(shè)計(jì)及相應(yīng)的連接數(shù)據(jù)庫部分,實(shí)現(xiàn)數(shù)據(jù)庫備份和還原部分以及數(shù)據(jù)庫數(shù)據(jù)的初始化。鄺銳強(qiáng)主要負(fù)責(zé)對各人員相關(guān)資料的刪除,修改,增加部分的界面設(shè)計(jì)及相應(yīng)的連接數(shù)據(jù)庫部分,操作員管理和權(quán)限設(shè)置。</p><p><b> 概要設(shè)計(jì)<
5、/b></p><p><b> 系統(tǒng)需求分析:</b></p><p> 通過調(diào)查本地的企業(yè),根據(jù)企業(yè)的具體情況設(shè)計(jì)企業(yè)人事管理系統(tǒng)。主要功能有:</p><p> ?、偃耸聶n案管理:戶口狀況、政治面貌、生理狀況、合同管理等;</p><p> ?、诳记诩影喑霾罟芾?;</p><p>
6、 ?、廴耸伦儎?dòng):新進(jìn)員工登記、員工離職登記、人事變更記錄;</p><p><b> ?、芸己霜?jiǎng)懲;</b></p><p><b> ?、輪T工培訓(xùn);</b></p><p> ?、尴到y(tǒng)維護(hù):如數(shù)據(jù)安全管理(含備份與恢復(fù))、操作員管理、權(quán)限設(shè)置等;</p><p> 由以上可知可以具體設(shè)計(jì)五類人員
7、:員工,維護(hù)部員工,經(jīng)理,人事部經(jīng)理以及總裁,其中員工只能查詢本人的基本資料:工號,姓名,性別,戶籍情況,政治面貌,生理狀況,合同,所屬部門以及自身的考勤考核獎(jiǎng)勵(lì)情況。而維護(hù)部員工除了可以完成普通員工的功能外還可以進(jìn)行系統(tǒng)維護(hù)。經(jīng)理可以管理員工,包括增加刪除本部門員工以及修改員工資料。人事部經(jīng)理在經(jīng)理的功能上增加了可以刪除增加修改其他部門員工資料的功能,而總裁可以任意增加刪除修改所有部門經(jīng)理及員工的資料。而對于所有人員均記錄其基本資料和
8、日常狀況資料。</p><p><b> 系統(tǒng)結(jié)構(gòu)設(shè)計(jì):</b></p><p> 由需求分析可以劃出系統(tǒng)結(jié)構(gòu)圖,如下:</p><p><b> 功能模塊設(shè)計(jì):</b></p><p> 由以上分析可以劃出功能模塊設(shè)計(jì)圖,如下:</p><p><b>
9、 詳細(xì)設(shè)計(jì)</b></p><p><b> 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì):</b></p><p> 經(jīng)過需求分析設(shè)計(jì)后得出數(shù)據(jù)庫設(shè)計(jì)的概念模型,其中包含兩個(gè)實(shí)體,一個(gè)是人員表,一個(gè)是日常情況表。如下:</p><p> 人員(工號,姓名,性別,年齡,戶口,政治面貌,生理狀況,合同管理,照片,密碼,所管(屬)部門(地區(qū)),職位)</
10、p><p> 日常情況(工號,日期,考勤,加班,懲罰,培訓(xùn))</p><p> 具體創(chuàng)建表的具體代碼如下:</p><p> create table BaseTable(</p><p> BID varchar(10) not null unique,</p><p> BName varchar(20) n
11、ot null,</p><p><b> BAge int,</b></p><p> BSex varchar(2),</p><p> BResidence varchar(50),</p><p> BPolity varchar(50),</p><p> BHealthy v
12、archar(50),</p><p> BAgreement varchar(50),</p><p> BDepartment varchar(20) not null,</p><p> BPhoto image,</p><p> BPassword varchar(50) not null,</p><p
13、> BPosition varchar(10) not null,</p><p> primary key(BID),</p><p> check (BAge>0),</p><p> check (BSex in ('男','女')),</p><p> check (BPositi
14、on in ('員工','維護(hù)部員工','經(jīng)理','人事經(jīng)理','總裁'))</p><p><b> );</b></p><p> create table ExtendTable(</p><p> EID varchar(10) not null,&l
15、t;/p><p> EDate datetime not null,</p><p> EState varchar(4),--考勤,內(nèi)容為“請假,曠到,遲到,正常,出差”</p><p> EOverwork varchar(2),--加班,內(nèi)容“有,無”</p><p> ERAP varchar(500),--獎(jiǎng)懲(re
16、wards and punishment)</p><p> ETraining varchar(500),</p><p> primary key(EID,EDate),</p><p> check (EState in ('請假','曠到','遲到','正常','出差'))
17、,</p><p> check (EOverwork in ('有','無')),</p><p> foreign key(EID) references BaseTable(BID) on delete cascade </p><p><b> );</b></p><p>
18、 所創(chuàng)建表的設(shè)計(jì)圖如下所示:</p><p> BaseTable表:</p><p> 用E-R圖表示該實(shí)體如下:</p><p> ExtendTable表:</p><p> 用E-R圖表示該實(shí)體如下:</p><p> 完整的E-R圖如下所示:</p><p> 系統(tǒng)主要功
19、能模塊設(shè)計(jì)</p><p> 各模塊的主要算法對應(yīng)的原代碼</p><p><b> 數(shù)據(jù)庫的連接:</b></p><p> ?、?利用控件Adodc連接:</p><p> 在Adodc控件中,設(shè)置ConnectStringProvider=”SQLOLEDB.1;Integrated Security=SSP
20、I;Persist Security Info=False;Initial Catalog=ManageSystem”,然后再設(shè)置CommandType為8 – adCmdUnknown,數(shù)據(jù)源定為SQL查詢語句,語句內(nèi)容根據(jù)不同需要而更改。</p><p> 設(shè)定ConnectString屬性</p><p> P.S:當(dāng)然,可以手工輸入,也可以利用“生成”讓VB自動(dòng)給出語句。<
21、;/p><p> 設(shè)定RecordSource屬性</p><p> 連接數(shù)據(jù)庫核心語句:</p><p> Adodc1.ConnectStringProvider=”SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ManageSystem”</
22、p><p> Adodc1.RecordSource = SQL查詢語句</p><p> Adodc1.Recordset.Open</p><p> Adodc1.Refresh</p><p> 斷開數(shù)據(jù)庫核心語句:</p><p> Adodc1.Recordset.Close</p>&l
23、t;p> ?、?利用ADODB對象作為SQL連接接口:</p><p> 由于在程序中使用瞬間連接數(shù)據(jù)庫比長期連接數(shù)據(jù)庫高效,而且在本程序中大量使用,因而新增了模塊Module1,自定義了SqlConnect函數(shù)作為連接,SqlDisConnect函數(shù)來斷開連接,方便編寫程序,提高代碼使用率,提高開發(fā)效率和運(yùn)行效率。</p><p> 連接數(shù)據(jù)庫核心語句:</p>
24、<p> Set Ado_Conn = New ADODB.Connection</p><p> Set Ado_RS = New ADODB.Recordset</p><p> str_CS = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial
25、Catalog=ManageSystem"</p><p> str_RS = SQL查詢語句</p><p> SqlConnect Ado_Conn, Ado_RS, str_CS, str_RS</p><p> 其中模塊中定義了SqlConnect函數(shù): </p><p> Public Sub SqlConnect
26、(ByVal Ado_Connection As ADODB.Connection, _</p><p> ByVal Ado_Recordset As ADODB.Recordset, _</p><p> Ado_ConnectionString As String, _</p><p> Ado_RecordSource As String)</p
27、><p> Ado_Connection.ConnectionString = Ado_ConnectionString</p><p> Ado_Connection.ConnectionTimeout = 30</p><p> Ado_Connection.Open</p><p> Ado_Recordset.Open Ado_R
28、ecordSource, Ado_Connection</p><p><b> End Sub</b></p><p> 斷開數(shù)據(jù)庫核心語句:</p><p> SqlDisConnect Ado_RS</p><p> 其中模塊中定義了SqlDisConnect函數(shù):</p><p>
29、 Public Sub SqlDisConnect(ByVal AdoRecordset As ADODB.Recordset)</p><p> If AdoRecordset.State Then AdoRecordset.Close</p><p><b> End Sub</b></p><p><b> 數(shù)據(jù)的查詢:
30、</b></p><p> ?、?利用表格方式對SQL數(shù)據(jù)進(jìn)行查詢:</p><p> 利用連接數(shù)據(jù)庫的方法,返回一個(gè)RecordSet集合。</p><p> 通過MSHFlexGrid控件、DataGrid控件等控件對集合作表格方式的輸出。使用Adodc控件時(shí),可以通過屬性的設(shè)定,把MSHFlexGrid控件、DataGrid1控件捆綁在Adod
31、c控件上。</p><p> 對用Adodc控件捆綁</p><p> 當(dāng)使用ADODB對象時(shí),可以通過Set語句對MSHFlexGrid.DataSourse 進(jìn)行賦ADODB對象的Recordset值。但是DataGrid1則不能。</p><p> ?、?利用字符竄方式對SQL數(shù)據(jù)進(jìn)行查詢</p><p> 利用連接數(shù)據(jù)庫的方法,
32、返回一個(gè)RecordSet集合。</p><p> 通過對RecordSet集合的提取,把元組中的屬性值賦給TextBox等控件控件,讓其輸出。</p><p> 核心代碼: Adodc1.Recordset.MoveFirst</p><p> Adodc1.Recordset.Find "工號='1234"</p&g
33、t;<p> Text1.Text = Adodc1.Recordset.Fields("工號").Value</p><p> Text2.Text = Adodc1.Recordset.Fields("姓名").Value</p><p><b> .</b></p><p>&l
34、t;b> .</b></p><p><b> .</b></p><p> ?、?對查詢所得到的集合作出判空:</p><p> 方法有多種:(設(shè)Ado_RS為Recordset)</p><p> A、利用EOF和BOF兩個(gè)屬性進(jìn)行判斷:</p><p> If A
35、do_RS.BOF = False And Ado_RS.EOF = False Then </p><p><b> 集合不為空</b></p><p><b> Else</b></p><p><b> 集合為空</b></p><p><b> End
36、 If</b></p><p> B、利用Recordset 的RecordCount屬性判斷:</p><p> If Ado_RS.RecordCount > 0 Then </p><p><b> 集合不為空</b></p><p><b> Else</b><
37、;/p><p><b> 集合為空</b></p><p><b> End If</b></p><p> C、利用DataGrid 的ApproxCount屬性來判斷:</p><p> 判斷條件會(huì)因表格的自定義顯示而有所不同</p><p> If DataGri
38、d1.ApproxCount > 0 Then</p><p><b> 集合不為空</b></p><p><b> Else</b></p><p><b> 集合為空</b></p><p><b> End If</b></p&
39、gt;<p> D、利用MSHFlexGrid的Rows屬性判斷:</p><p> 判斷條件會(huì)因表格的自定義顯示而有所不同</p><p> If MSHFlexGrid1. Rows> 1 Then</p><p><b> 集合不為空</b></p><p><b> Els
40、e</b></p><p><b> 集合為空</b></p><p><b> End If</b></p><p><b> ?、?查詢特定元組</b></p><p> 對于特定元組,由于主碼的唯一性,所以當(dāng)對主碼作準(zhǔn)確查詢時(shí),所得的表只有兩種情況:只有
41、一條元組或者什么都沒有。</p><p> 通過⑶的方法,可以對集合判空。如果為空,則認(rèn)為特定元組不存在,,查詢失??;如果返回一條元組,則指針肯定是指向該元組,可以馬上對數(shù)據(jù)進(jìn)行讀取。</p><p><b> 核心代碼:</b></p><p> Set Ado_Conn = New ADODB.Connection</p>
42、<p> Set Ado_RS = New ADODB.Recordset</p><p> str_CS = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ManageSystem"</p><p> str_RS
43、= "select * from BaseTable where BID='" & Trim(Text1.Text) & "'"</p><p> SqlConnect Ado_Conn, Ado_RS, str_CS, str_RS</p><p> Ado_RS.RecordCount</p>&
44、lt;p><b> '檢測帳號是否存在</b></p><p> If Ado_RS.EOF = False Then '如果帳號存在</p><p> If Trim(Ado_RS.Fields("BID")) = Trim(Text1.Text) And Trim(Ado_RS.Fields("BPa
45、ssword")) = Trim(Text2.Text) Then</p><p> 還有一種方法,利用Find方法進(jìn)行查找,如果找到則指針指向該元組。如找不到則返回錯(cuò)誤。因此利用捕獲錯(cuò)誤的方法也可以得到效果。</p><p> 第三種,利用MSHFlexGrid控件、DataGrid控件等,均可以利用控件內(nèi)部的屬性和方法進(jìn)行查詢。</p><p>&
46、lt;b> 數(shù)據(jù)的修改:</b></p><p> ⑴ 利用嵌入SQL語句。</p><p> 首先使用ADODB對象連接的方法,利用ADODB.Connection.</p><p> Execute直接嵌套運(yùn)行SQL語句對數(shù)據(jù)進(jìn)行修改。</p><p><b> 核心語句:</b><
47、/p><p> Ado_Conn.Execute “updata 表名 set 某屬性=XX”</p><p> ?、?此外還可以利用ADO接口提供的Fields屬性對數(shù)據(jù)進(jìn)行修改。</p><p><b> 核心語句:</b></p><p> Adodc1.Recordset.Find "工號='
48、" & Text3.Text & "'"</p><p> Adodc1.Recordset.Fields("姓名") = Text4.Text</p><p> Adodc1.Recordset.Fields("所屬部門") = Combo2.Text</p><p>
49、; Adodc1.Recordset.Fields("職位") = Combo3.Text</p><p> Adodc1.Recordset.Update</p><p> Adodc1.Refresh</p><p> ?、?利用DataGrid控件對數(shù)據(jù)庫進(jìn)行強(qiáng)行修改。</p><p> 只需要連接好數(shù)據(jù)庫,
50、然后對DataGrid進(jìn)行捆綁,而且DataGrid的AllowUpdate等屬性設(shè)為True就可以通過界面直接修改。</p><p><b> 數(shù)據(jù)的刪除</b></p><p><b> 基本方法跟3一樣。</b></p><p> ?、?使用SQL嵌套語句刪除數(shù)據(jù)。</p><p> A
51、do_Conn.Execute “delete from表名 where某屬性=XX”</p><p> ?、?此外還可以利用ADO接口提供的Fields屬性對數(shù)據(jù)進(jìn)行修改。</p><p><b> 核心語句:</b></p><p> Adodc1.Recordset.MoveFirst</p><p> Ad
52、odc1.Recordset.Find "工號='" & Text3.Text & "'"</p><p> Adodc1.Recordset.Delete</p><p> Adodc1.Recordset.Update</p><p><b> 5、數(shù)據(jù)的添加:</b&
53、gt;</p><p><b> 基本方法跟3一樣。</b></p><p> ?、?使用SQL嵌套語句增加數(shù)據(jù)。</p><p> Ado_Conn.Execute “insert into 表名 values(某屬性=XX)”</p><p> ?、?此外還可以利用ADO接口提供的Fields屬性對數(shù)據(jù)進(jìn)行修改。
54、</p><p><b> 核心語句:</b></p><p> Adodc1.Recordset.MoveFirst</p><p> Adodc1.Recordset.AddItem</p><p> Adodc1.Recordset.Fields("姓名") = Text4.Text&l
55、t;/p><p> Adodc1.Recordset.Fields("所屬部門") = Combo2.Text</p><p> Adodc1.Recordset.Fields("職位") = Combo3.Text</p><p> Adodc1.Recordset.Update</p><p>
56、 Adodc1.Refresh</p><p><b> 7、權(quán)限的分配</b></p><p> 讀取BaseTable(員工基本表)里面的BPosition(職位)。通過對其的判斷,來選擇其他更多的步驟。</p><p><b> 核心語句:</b></p><p> Select Ca
57、se Trim(Ado_RS.Fields("BPosition")) '檢測權(quán)限</p><p><b> Case "總裁"</b></p><p><b> …………</b></p><p> Case "人事經(jīng)理"</p>
58、<p><b> …………</b></p><p><b> Case "經(jīng)理"</b></p><p><b> …………</b></p><p> Case "維護(hù)部員工"</p><p><b> …
59、………</b></p><p><b> Case "員工"</b></p><p><b> …………</b></p><p> End Select</p><p> 調(diào)試與運(yùn)行結(jié)果及主要問題</p><p> 在程序設(shè)計(jì)過程中遇
60、到的主要問題是如何將數(shù)據(jù)庫數(shù)據(jù)和vb連接起來,設(shè)置外碼與被參照關(guān)系中主碼的及聯(lián)關(guān)系以及如何高效地實(shí)現(xiàn)查詢功能。同時(shí)由于在數(shù)據(jù)庫基本資料表中添加了照片屬性,但由于能力有限,至今仍不懂往數(shù)據(jù)庫表中插入圖片的方法。另外一個(gè)方面的問題就是界面不夠漂亮,顯得有點(diǎn)死板。</p><p><b> 主要截圖如下:</b></p><p><b> 登陸框</b&
61、gt;</p><p><b> 總裁管理截圖</b></p><p><b> 員工管理截圖</b></p><p><b> 數(shù)據(jù)備份和恢復(fù)</b></p><p><b> 經(jīng)理管理截圖</b></p><p> 考
62、勤-獎(jiǎng)懲-培訓(xùn)一覽表</p><p><b> 添加經(jīng)理截圖</b></p><p><b> 添加員工截圖</b></p><p><b> 維護(hù)員工查詢截圖</b></p><p><b> 一般員工查詢截圖</b></p>&l
63、t;p><b> *課程設(shè)計(jì)小結(jié)*</b></p><p><b> 參考文獻(xiàn)</b></p><p> 薩師煊,王珊。數(shù)據(jù)庫系統(tǒng)概論(第三版)</p><p> 劉曉華。SQL Server 2000數(shù)據(jù)庫應(yīng)用開發(fā)</p><p> 張勇。Visual Basic 課程設(shè)計(jì)案例精編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)人事管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)(企業(yè)人事管理系統(tǒng))
- 課程設(shè)計(jì)---企業(yè)人事管理系統(tǒng)
- 人事管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 人事管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 人事管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 企業(yè)人事管理系統(tǒng)課程設(shè)計(jì)論文
- 人事管理系統(tǒng)delphi課程設(shè)計(jì)報(bào)告
- 人事管理系統(tǒng)課程設(shè)計(jì)
- 人事管理系統(tǒng)課程設(shè)計(jì)
- 企業(yè)人事管理系統(tǒng)實(shí)例sql課程設(shè)計(jì)
- 企業(yè)員工人事管理系統(tǒng)課程設(shè)計(jì)
- 企業(yè)人事管理系統(tǒng)實(shí)例-sql課程設(shè)計(jì)
- 人事管理系統(tǒng)c語言課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告mini人事管理系統(tǒng)
- 課程設(shè)計(jì)--人事管理系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告--人事管理系統(tǒng)
- excel課程設(shè)計(jì)報(bào)告-- 公司人事管理系統(tǒng)
- 人事管理課程設(shè)計(jì)報(bào)告
- php人事管理系統(tǒng)課程設(shè)計(jì)
評論
0/150
提交評論