




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 本科課程報(bào)告工資管理系統(tǒng)劉付渝杰2教師 畢敏娜報(bào)告提交日期2013年5月 23 日48 / 52文檔可自由編輯打印目 錄1 工資管理系統(tǒng)概述 12 需求分析 23 概念模型 34 數(shù)據(jù)模型 45 基于VB平臺的設(shè)計(jì) 75.1 “登錄模塊”詳細(xì)設(shè)計(jì) 75.2 “主窗體”模塊詳細(xì)設(shè)計(jì) 105.3 各項(xiàng)子模塊詳細(xì)設(shè)計(jì) 13 6 總結(jié) 44參考文獻(xiàn) 451 工資管理系統(tǒng)概述 1.1 數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)據(jù)庫的一切操作,包括定義、更新及各種控制,都是通過DBMS進(jìn)行的。DBMS總是基于某種數(shù)據(jù)模型,可以把D
2、BMS看成是某種數(shù)據(jù)模型在計(jì)算機(jī)系統(tǒng)上的具體實(shí)現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷取icrosoft SQL Server就是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。關(guān)系模型主要是用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)體間聯(lián)系。關(guān)系模型是由若干個(gè)關(guān)系模式組成的集合。關(guān)系模式相當(dāng)于前面提到的記錄類型,每個(gè)關(guān)系實(shí)際上是一張二維表格。關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導(dǎo)航數(shù)據(jù),表格簡單用戶易懂,編程時(shí)并不涉及存儲結(jié)構(gòu),訪問技術(shù)等細(xì)節(jié)。SQL語言是關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)化語言,已得到了廣泛的應(yīng)用。1.2 企業(yè)工資管理系統(tǒng)企業(yè)工資管理是一項(xiàng)瑣碎、復(fù)雜而又十分
3、細(xì)致的工作,一般不允許發(fā)生差錯。最初的工資統(tǒng)計(jì)和發(fā)放都是使用人工方式處理,工作量大的時(shí)候,出現(xiàn)錯誤的機(jī)率也隨之升高,不僅花費(fèi)財(cái)務(wù)人員大量的時(shí)間,而且往往由于抄寫不慎,或者由于計(jì)算的疏忽,出現(xiàn)工資發(fā)放錯誤的現(xiàn)象。同時(shí)工資的發(fā)放具有較強(qiáng)的時(shí)間限制,必須嚴(yán)格按照單位規(guī)定的時(shí)間完成計(jì)算和發(fā)放工作。正是企業(yè)工資管理的這種重復(fù)性、規(guī)律性、時(shí)間性,使得企業(yè)工資管理計(jì)算機(jī)化成為可能。企業(yè)工資管理系統(tǒng)就是使用電腦代替大量的人工統(tǒng)計(jì)和計(jì)算,完成眾多企業(yè)工資信息的處理,同時(shí)使用電腦還可以安全地、完整地保存大量的企業(yè)工資記錄。2 需求分析需求分析的過程可以說是一個(gè)對具體問題的反復(fù)理解和抽象的過程。理解就是對現(xiàn)實(shí)問題的
4、理解,要弄清楚究竟需要解決什么問題。抽象就是除去問題的表面,提取問題的本質(zhì),建立問題的邏輯模型,以便于以后階段的系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)。需求分析階段是軟件產(chǎn)品生存命期中的一個(gè)重要階段,其根本任務(wù)是確定用戶對軟件系統(tǒng)的需求。所謂需求是指用戶對軟件的功能和性能的要求,就是用戶希望軟件能什么事情,完成什么樣的功能,達(dá)到什么性能。通常需求分為兩種類型:一種是功能性需求,一種是非功能性需求,這一點(diǎn)也需要有一種清楚的認(rèn)識。功能性需求是指需要計(jì)算機(jī)系統(tǒng)解決的問題,也就是對數(shù)據(jù)的處理要求,這是一類最主要的需求。非功能性需求是指實(shí)際使用環(huán)境所要求的需求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求,等等
5、。工資管理既涉及到企業(yè)勞動人事的管理,同時(shí)也是企業(yè)財(cái)務(wù)管理的重要組成部分。工資管理需要和人事管理相聯(lián)系,同時(shí)連接工時(shí)考勤和醫(yī)療保險(xiǎn)等等,來生成企業(yè)每個(gè)職工的基本工資、津貼、醫(yī)療保險(xiǎn)、保險(xiǎn)費(fèi)、實(shí)際發(fā)放工資等。資金是企業(yè)生存的主要元素,資金的流動影響到企業(yè)的整體運(yùn)作,企業(yè)員工的工資是企業(yè)資金管理的一個(gè)重要的組成部分。早期的工資統(tǒng)計(jì)和發(fā)放都是使用人工方式處理紙質(zhì)材料,不僅花費(fèi)財(cái)務(wù)人員大量的時(shí)間且不易保存,往往由于個(gè)人的因素抄寫不慎或計(jì)算疏忽,出現(xiàn)工資發(fā)放錯誤的現(xiàn)象。早期工資管理多采取紙質(zhì)材料和具有較強(qiáng)的時(shí)間限制。基于以上原因,企業(yè)工資管理系統(tǒng)使用電腦安全保存、快速計(jì)算、全面統(tǒng)計(jì),實(shí)現(xiàn)工資管理的系統(tǒng)化
6、、規(guī)范化、自動化。企業(yè)工資管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),前臺程序開發(fā)工具采用微軟的VB6,后臺數(shù)據(jù)庫采用Microsoft SQL Server數(shù)據(jù)庫。VB6是一種面向?qū)ο蟮拈_發(fā)工具,具有組件豐富、語言簡單、功能強(qiáng)大的優(yōu)點(diǎn)。 Microsoft SQL Server數(shù)據(jù)庫具有與VB6無縫連接、操作簡單、易于使用的優(yōu)點(diǎn)。運(yùn)行結(jié)果證明,本企業(yè)工資管理系統(tǒng)極大提高了工作效率,節(jié)省了人力和物力,能滿足企業(yè)財(cái)務(wù)管理、員工工資發(fā)放的需要。3 概念模型根據(jù)系統(tǒng)的實(shí)現(xiàn)目標(biāo),系統(tǒng)功能模塊圖如圖3.1所示:工資管理系統(tǒng)系統(tǒng)管理部分企業(yè)人員信息管理企業(yè)工資信息管理修改密碼錄入人員信息查詢?nèi)藛T信息修改人員信
7、息工資修改工資查詢退出系統(tǒng)工資刪除添加管理員工資錄入圖3.1 系統(tǒng)功能模塊在這次系統(tǒng)開發(fā)中我主要完成的部分是工資管理和設(shè)置方面。開發(fā)這個(gè)系統(tǒng)的目的就是幫助企業(yè)的財(cái)務(wù)主管部門提高工作效率,實(shí)現(xiàn)企業(yè)工資信息管理的系統(tǒng)化、規(guī)范化和自動化。能夠和認(rèn)識管理系統(tǒng)、考勤管理系統(tǒng)相結(jié)合,真正實(shí)現(xiàn)企業(yè)高效、科學(xué)、現(xiàn)代化的員工管理。系統(tǒng)最終實(shí)現(xiàn)的主要功能如下:·企業(yè)人員信息管理部分:包括設(shè)置員工的基本工資和其他項(xiàng)目的金額,如獎金等。并且負(fù)責(zé)設(shè)置員工工資的計(jì)算公式。工資信息設(shè)置修改人員信息查詢?nèi)藛T信息錄入人員信息圖3.2 人員信息管理模塊·企業(yè)工資信息管理部分:包括統(tǒng)計(jì)出勤、計(jì)算工資、查詢工資和
8、導(dǎo)出工資表。工資信息管理工資刪除工資查詢工資錄入工資修改圖3.3 工資信息管理模塊·系統(tǒng)部分:包括添加用戶和修改密碼。系統(tǒng)管理退出系統(tǒng)修改密碼添加管理員圖3.4 系統(tǒng)模塊4 數(shù)據(jù)模型數(shù)據(jù)庫是信息管理系統(tǒng)的后臺,存儲著所有的信息,在信息管理系統(tǒng)中有著很重要的地位。數(shù)據(jù)庫設(shè)計(jì)的好與壞,直接影響到這個(gè)系統(tǒng)的運(yùn)行效率。良好的數(shù)據(jù)庫設(shè)計(jì),可以提高數(shù)據(jù)信息的存儲效率,確保數(shù)據(jù)信息的完整性和一致性。針對企業(yè)工資信息管理系統(tǒng)的需求,通過對員工工資計(jì)算過程的內(nèi)容分析,為本系統(tǒng)設(shè)計(jì)如下的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):·用戶基本信息:包括序號,用戶名稱,密碼。密碼用戶基本信息序號用戶名稱圖4.1 基本工資實(shí)
9、體E-r圖·人員基本信息:包括序號,姓名,職務(wù)等。人員基本信息序號姓名職務(wù)圖4.2 其他項(xiàng)目實(shí)體E-R圖·工資基本信息:包括序號,姓名,月份,工資,獎金和補(bǔ)助等。年份補(bǔ)助獎金工資基本信息序號姓名月份工資圖4.3計(jì)算公式實(shí)體E-R圖啟動Microsoft SQL Server,創(chuàng)建新的數(shù)據(jù)庫,命名為工資管理系統(tǒng),數(shù)據(jù)庫中表的設(shè)置如下圖所示。系統(tǒng)管理表如圖4.4所示圖4.4 工資信息表如圖4.5所示圖4.5人員信息表如圖4.6所示 圖4.65 基于VB平臺的設(shè)計(jì)5.1 “登錄模塊”詳細(xì)設(shè)計(jì)1、實(shí)現(xiàn)目標(biāo):登錄模塊的詳細(xì)設(shè)計(jì)主要是用戶登錄的一個(gè)界面,判斷登錄的用戶是管理員還是普通用
10、戶,進(jìn)入后將面對的是主界面,從而進(jìn)行相關(guān)的操作。登錄的界面主要由用戶名和密碼的信息,確定和取消的按鈕組成。通過標(biāo)題可以知道此系統(tǒng)的大概內(nèi)容,由此,登錄界面的設(shè)計(jì)完成。 2、界面:圖5.1 用戶登陸界面登陸界面程序流程圖如下:輸入用戶名密碼開始用戶名密碼是否正確進(jìn)入系統(tǒng)密碼錯誤是否圖5.2 登陸程序流程圖3、程序說明:Option ExplicitDim cnt As Integer '記錄確定次數(shù)Private Sub Command1_Click()Dim sql As StringDim rs_login As New ADODB.RecordsetIf Trim(txtuser.
11、Text) = "" Then '判斷輸入的用戶名是否為空 MsgBox "沒有這個(gè)用戶", vbOKOnly + vbExclamation, "" txtuser.SetFocusElse sql = "select * from 系統(tǒng)管理 where 用戶名='" & txtuser.Text & "'" rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_login.EOF
12、= True Then MsgBox "沒有這個(gè)用戶", vbOKOnly + vbExclamation, "" txtuser.SetFocus Else '檢驗(yàn)密碼是否正確 If Trim(rs_login.Fields(1) = Trim(txtpwd.Text) Then userID = txtuser.Text rs_login.Close Unload Me Form1.Show Else MsgBox "密碼不正確", vbOKOnly + vbExclamation, "" txtpwd
13、.SetFocus End If End IfEnd Ifcnt = cnt + 1If cnt = 3 Then Unload MeEnd IfExit SubEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim connectionstring As Stringconnectionstring = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=工
14、資管理系統(tǒng);Data Source=SDWM-20130406JI"'connectionstring = "provider=Microsoft.Jet.oledb.4.0;" &_ '"data source=book.mdb"conn.Open connectionstringcnt = 0End Sub52 “主窗體”模塊詳細(xì)設(shè)計(jì)1實(shí)現(xiàn)目標(biāo):在這個(gè)項(xiàng)目中,選擇使用多文檔界面。使用這個(gè)窗體的好處是可以使程序更加有條理。對于一個(gè)多任務(wù)的應(yīng)用程序,使用多文檔窗體還可以減少占用的系統(tǒng)資源。2、界面及目標(biāo)實(shí)現(xiàn)過程:主窗體設(shè)
15、計(jì)的界面是用菜單編輯器做的,主要由系統(tǒng)管理、工資管理、人員管理這三個(gè)大模塊組成。主窗體是進(jìn)行相關(guān)操作的主界面。在這幾個(gè)里,管理員有所有的權(quán)利進(jìn)行各種操作。圖5.3 工資管理系統(tǒng)界面3、程序說明:Private Sub add_admin_Click()frmadduser.ShowEnd SubPrivate Sub rylr_Click()frmrylr.ShowEnd SubPrivate Sub Form_Load()End SubPrivate Sub gyrj_Click()frmAbout.ShowEnd SubPrivate Sub change_pwd_Click()frmch
16、angepwd.ShowEnd SubPrivate Sub del_book_info_Click()frmmodifybookinfo.ShowEnd SubPrivate Sub gzlr_Click()frmgzlr.ShowEnd SubPrivate Sub gzcx_Click()frmgzcx.ShowEnd SubPrivate Sub gzxg_Click()frmgzxg.ShowEnd SubPrivate Sub exit_sys_Click()EndEnd SubPrivate Sub rycx_Click()frmrycx.ShowEnd Sub5.各項(xiàng)子模塊詳細(xì)
17、設(shè)計(jì)5.3.1 “工資錄入”窗體設(shè)計(jì)1、實(shí)現(xiàn)目標(biāo):選擇“工資管理”>“工資錄入”菜單錄入員工的基本工資信息。2、界面圖5.4 設(shè)置基本工資界面3、程序說明:Option ExplicitPrivate Sub Combo1_Change()End SubPrivate Sub Command1_Click()Dim rs_addbook As New ADODB.RecordsetDim rs_addbook1 As New ADODB.RecordsetDim sql As StringIf Trim(Text7.Text) = "" Then MsgBox &qu
18、ot;請輸入月份,序號,姓名,工資,獎金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text7.SetFocus Exit SubEnd IfIf Trim(Text1.Text) = "" Then MsgBox "請輸入月份,序號,姓名,工資,獎金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text1.SetFocus Exit SubEnd IfIf Trim(Text2.Text) = "" Then MsgB
19、ox "請輸入月份,序號,姓名,工資,獎金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text2.SetFocus Exit Sub End IfIf Trim(Text3.Text) = "" Then MsgBox "請輸入月份,序號,姓名,工資,獎金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text3.SetFocus Exit Sub End IfIf Trim(Text4.Text) = "" T
20、hen MsgBox "請輸入月份,序號,姓名,工資,獎金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text4.SetFocus Exit Sub End IfIf Trim(Text5.Text) = "" Then MsgBox "請輸入月份,序號,姓名,工資,獎金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text5.SetFocus Exit Sub End If If Trim(Text6.Text) = "
21、;" Then MsgBox "請輸入月份,年份,序號,姓名,工資,獎金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text6.SetFocus Exit Sub End If sql = "select * from 人員信息 where 序號='" & Text1.Text & "'and 人員姓名='" & Text2.Text & "'"rs_addbook.Open sql, c
22、onn, adOpenKeyset, adLockPessimisticIf Not rs_addbook.EOF Thensql = "select * from 工資信息 "rs_addbook1.Open sql, conn, adOpenKeyset, adLockPessimistic rs_addbook1.AddNew rs_addbook1.Fields(0) = Trim(Text1.Text) rs_addbook1.Fields(1) = Trim(Text2.Text) rs_addbook1.Fields(2) = Trim(Text7.Text)
23、 rs_addbook1.Fields(3) = Trim(Text3.Text) rs_addbook1.Fields(4) = Trim(Text4.Text) rs_addbook1.Fields(5) = Trim(Text5.Text) rs_addbook1.Fields(6) = Trim(Text6.Text) rs_addbook1.Update MsgBox "工資錄入成功!", vbOKOnly, "" rs_addbook1.Close Else MsgBox "職員不存在!", vbOKOnly + vbEx
24、clamation, "" Text1.SetFocus Text1.Text = "" rs_addbook.Close Exit SubEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()End Sub3.3.2 “工資查詢及修改”窗體設(shè)計(jì)1、實(shí)現(xiàn)目標(biāo):選擇“工資管理”>“工資查詢及修改”菜單,可查詢工資信息,修改工資信息和刪除工資信息2、界面圖5.5工資查詢,修改及刪除3、程序說明:Option ExplicitDim panduan
25、As StringDim rs_addbook1 As New ADODB.RecordsetDim rs_book As New ADODB.RecordsetDim rs_addbook As New ADODB.RecordsetDim sql As StringPrivate Sub Command1_Click()Dim rs_findbook As New ADODB.RecordsetDim sql As StringIf Check1.Value = vbChecked Then sql = "序號 = '" & Trim(Text1.Tex
26、t & " ") & "'"End IfIf Check2.Value = vbChecked Then If Trim(sql) = "" Then sql = "姓名='" & Trim(Text5.Text) & "'" Else sql = sql & "and 姓名='" & Trim(Text5.Text) & "'" End IfEnd IfIf
27、Check3.Value = vbChecked Then If Trim(sql) = "" Then sql = "月份='" & Trim(Text2.Text & " ") & "'" Else sql = sql & "and 月份='" & Trim(Text2.Text & " ") & "'" End IfEnd IfIf Check4.Value =
28、vbChecked Then sql = "工資 = ' " & Trim(Text3.Text & " ") & " '"End IfIf Check5.Value = vbChecked Then If Trim(sql) = "" Then sql = "年份='" & Trim(Text4.Text & " ") & "'" Else sql = sql & &
29、quot;and 年份='" & Trim(Text4.Text & " ") & "'" End IfEnd IfIf Trim(sql) = "" Then MsgBox "請選擇查詢方式!", vbOKOnly + vbExclamation Exit SubEnd Ifsql = "select * from 工資信息 where " & sqlrs_findbook.CursorLocation = adUseClientrs_
30、findbook.Open sql, conn, adOpenKeyset, adLockPessimisticDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseSet DataGrid1.DataSource = rs_findbook'book_num = DataGrid1.Columns(0).CellValue(DataGrid1.Bookmark)'panduan = DataGrid1.Columns(7).CellValue(DataGri
31、d1.Bookmark)'rs_findbook.CloseEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub cmdcancel_Click() rncelUpdate DataGrid1.Refresh DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False cmdmodify.Enabled = True cmddel.Enabled = True cmdcancel.Enabled = False cmdupdate.Enabled = Fa
32、lseEnd SubPrivate Sub cmddel_Click()Dim answer As StringOn Error GoTo delerroranswer = MsgBox("確定要刪除嗎?", vbYesNo, "")If answer = vbYes Then DataGrid1.AllowDelete = True rs_book.Delete rs_book.Update DataGrid1.Refresh MsgBox "成功刪除!", vbOKOnly + vbExclamation, ""
33、; DataGrid1.AllowDelete = FalseElse Exit SubEnd Ifdelerror:If Err.Number <> 0 Then MsgBox Err.DescriptionEnd IfEnd SubPrivate Sub cmdmodify_Click()Dim answer As StringOn Error GoTo cmdmodifycmddel.Enabled = Falsecmdmodify.Enabled = Falsecmdupdate.Enabled = Truecmdcancel.Enabled = TrueDataGrid1
34、.AllowUpdate = Truecmdmodify:If Err.Number <> 0 Then MsgBox Err.DescriptionEnd IfEnd SubPrivate Sub cmdupdate_Click()Dim rs_addbook1 As New ADODB.RecordsetDim rs_addbook As New ADODB.RecordsetDim sql As String'If Not IsNull(DataGrid1.Bookmark) Then ' rs_book.Update'End Ifsql = &quo
35、t;select * from 工資信息 where 序號='" & Text1.Text & "'and 姓名='" & Text2.Text & "'"rs_addbook.Open sql, conn, adOpenKeyset, adLockPessimisticIf Not rs_addbook.EOF Thensql = "select * from 工資信息 where 序號='" & Text1.Text & "
36、'and 姓名='" & Text2.Text & "'"rs_addbook.Open sql, conn, adOpenKeyset, adLockPessimisticrs_addbook.Update cmdmodify.Enabled = True cmddel.Enabled = True cmdcancel.Enabled = False cmdupdate.Enabled = False DataGrid1.AllowUpdate = False MsgBox "修改成功!", vbOKO
37、nly + vbExclamation, "" Else cmdmodify.Enabled = True cmddel.Enabled = True cmdcancel.Enabled = False cmdupdate.Enabled = False DataGrid1.AllowUpdate = False MsgBox "修改成功!", vbOKOnly + vbExclamation, "" rs_addbook.Close Exit Sub End If End SubPrivate Sub Form_Load()Dim
38、sql As StringOn Error GoTo loaderrorsql = "select * from 工資信息"rs_book.CursorLocation = adUseClientrs_book.Open sql, conn, adOpenKeyset, adLockPessimistic '打開數(shù)據(jù)庫cmdupdate.Enabled = False'設(shè)定datagrid控件屬性DataGrid1.AllowAddNew = False '不可增加DataGrid1.AllowDelete = False '不可刪除Data
39、Grid1.AllowUpdate = FalseIf userpow = "guest" Then '權(quán)限相關(guān) Frame2.Enabled = FalseEnd IfSet DataGrid1.DataSource = rs_book'cmdcancel.Enabled = FalseExit Subloaderror: MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set DataGrid1.DataSource = Nothingsql = "s
40、elect * from 工資信息 where 序號='" & Text1.Text & "'and 姓名='" & Text2.Text & "'"rs_addbook.Open sql, conn, adOpenKeyset, adLockPessimistic rs_addbook.CloseEnd SubPrivate Sub Command3_Click()If Trim(book_num) = "" Then MsgBox "請選擇要修改的
41、記錄!", vbOKOnly + vbExclamation Exit SubEnd Iffrmgzxg.ShowEnd SubPrivate Sub Command4_Click()End SubPrivate Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)book_num = DataGrid1.Columns(0).CellText(DataGrid1.Bookmark)panduan = DataGrid1.Columns(1).CellText(DataGrid1.Bookma
42、rk)End SubPrivate Sub VScroll1_Change()End Sub5.3.3 “關(guān)于軟件”窗體設(shè)計(jì)1、實(shí)現(xiàn)目標(biāo):選擇“工資管理”>“關(guān)于軟件”菜單,在這個(gè)窗體中顯示系統(tǒng)信息。2、界面及主要控件列表圖5.6 計(jì)算公式界面3、程序說明:Option Explicit' 注冊表關(guān)鍵字安全選項(xiàng).Const READ_CONTROL = &H20000Const KEY_QUERY_VALUE = &H1Const KEY_SET_VALUE = &H2Const KEY_CREATE_SUB_KEY = &H4Const KEY_
43、ENUMERATE_SUB_KEYS = &H8Const KEY_NOTIFY = &H10Const KEY_CREATE_LINK = &H20Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL ' 注冊表關(guān)鍵字 ROOT 類型.Const HKEY_LOCAL_MACHINE = &H80000002
44、Const ERROR_SUCCESS = 0Const REG_SZ = 1 ' 獨(dú)立的空的終結(jié)字符串Const REG_DWORD = 4 ' 32位數(shù)字Const gREGKEYSYSINFOLOC = "SOFTWAREMicrosoftShared Tools Location"Const gREGVALSYSINFOLOC = "MSINFO"Const gREGKEYSYSINFO = "SOFTWAREMicrosoftShared ToolsMSINFO"Const gREGVALSYSINFO =
45、"PATH"Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As LongPrivate Declare Function RegQueryValueEx Lib "advapi32
46、" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As LongPrivate Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As LongPrivate Sub cmd
47、SysInfo_Click() Call StartSysInfoEnd SubPrivate Sub cmdOK_Click() Unload MeEnd SubPrivate Sub Form_Load() Me.Caption = "關(guān)于 " & App.Title ption = "版本 " & App.Major & "." & App.Minor & "." & App.Revision ption = App.TitleEnd SubPublic Sub
48、 StartSysInfo() On Error GoTo SysInfoErr Dim rc As Long Dim SysInfoPath As String ' 試圖從注冊表中獲得系統(tǒng)信息程序的路徑及名稱. If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then ' 試圖僅從注冊表中獲得系統(tǒng)信息程序的路徑. ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC,
49、SysInfoPath) Then ' 已知32位文件版本的有效位置 If (Dir(SysInfoPath & "MSINFO32.EXE") <> "") Then SysInfoPath = SysInfoPath & "MSINFO32.EXE" ' 錯誤 - 文件不能被找到. Else GoTo SysInfoErr End If ' 錯誤 - 注冊表相應(yīng)條目不能被找到. Else GoTo SysInfoErr End If Call Shell(SysInfoPath,
50、 vbNormalFocus) Exit SubSysInfoErr: MsgBox "此時(shí)系統(tǒng)信息不可用", vbOKOnlyEnd SubPublic Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean Dim i As Long ' 循環(huán)計(jì)數(shù)器 Dim rc As Long ' 返回代碼 Dim hKey As Long ' 打開的注冊表關(guān)鍵字句柄 Dim hDepth A
51、s Long ' Dim KeyValType As Long ' 注冊表關(guān)鍵字?jǐn)?shù)據(jù)類型 Dim tmpVal As String ' 注冊表關(guān)鍵字值的臨時(shí)存儲器 Dim KeyValSize As Long ' 注冊表關(guān)鍵自變量的尺寸 '- ' 打開 HKEY_LOCAL_MACHINE. 下的 RegKey '- rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' 打開注冊表關(guān)鍵字 If (rc <> ERROR_SUCCESS) Then
52、GoTo GetKeyError ' 處理錯誤. tmpVal = String$(1024, 0) ' 分配變量空間 KeyValSize = 1024 ' 標(biāo)記變量尺寸 '- ' 檢索注冊表關(guān)鍵字的值. '- rc = RegQueryValueEx(hKey, SubKeyRef, 0, _ KeyValType, tmpVal, KeyValSize) ' 獲得/創(chuàng)建關(guān)鍵字值 If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' 處理錯誤 If (Asc(Mid(tmpVal, KeyValSize, 1) = 0) Then ' Win95 外接程序空終結(jié)字符串. tmpVal = Left(tmpVal, KeyValSize - 1) ' Null 被找到,從字符串中分離出來 Else ' WinNT 沒有空終結(jié)字符串. tmpVal = Left(tmpVal, KeyValSize) ' Null 沒有被找到, 分離字符串 End I
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年、月、日(教學(xué)設(shè)計(jì))-2023-2024學(xué)年三年級下冊數(shù)學(xué)人教版
- 延邊職業(yè)技術(shù)學(xué)院《數(shù)據(jù)庫原理與應(yīng)用課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西警官職業(yè)學(xué)院《寬帶接入技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 陜西能源職業(yè)技術(shù)學(xué)院《計(jì)算機(jī)控制系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢工程大學(xué)郵電與信息工程學(xué)院《多變量分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 西南政法大學(xué)《乳品工藝學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 全國粵教清華版初中信息技術(shù)七年級下冊第2單元第3節(jié)《信息的處理》教學(xué)設(shè)計(jì)
- 西安外事學(xué)院《電子商務(wù)組織與運(yùn)營》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建華南女子職業(yè)學(xué)院《專業(yè)外語(自動化)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東工貿(mào)職業(yè)技術(shù)學(xué)院《電氣控制與PLC技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 高甘油三酯血癥性急性胰腺炎診治急診專家共識2021解讀
- 雕版印刷術(shù)的發(fā)明《金剛經(jīng)》課件
- 精密測量課程中的思政案例弘揚(yáng)工匠精神助力科技強(qiáng)國
- 殘疾人就業(yè)服務(wù)
- 傳統(tǒng)的中國紋樣與飾品設(shè)計(jì)
- 工業(yè)園區(qū)消防培訓(xùn)課件
- 供水管網(wǎng)項(xiàng)目背景
- 淺層高效氣浮池技術(shù)說明
- 小學(xué)大觀念教學(xué):設(shè)計(jì)與實(shí)施
- 《安全原理》習(xí)題庫及參考答案
-
評論
0/150
提交評論