本科課程報(bào)告-數(shù)據(jù)庫-電氣(含有vb源代碼)_第1頁
本科課程報(bào)告-數(shù)據(jù)庫-電氣(含有vb源代碼)_第2頁
本科課程報(bào)告-數(shù)據(jù)庫-電氣(含有vb源代碼)_第3頁
本科課程報(bào)告-數(shù)據(jù)庫-電氣(含有vb源代碼)_第4頁
本科課程報(bào)告-數(shù)據(jù)庫-電氣(含有vb源代碼)_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(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平臺(tái)的設(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)的核心組成部分。對(duì)數(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í)并不涉及存儲(chǔ)結(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ā)生差錯(cuò)。最初的工資統(tǒng)計(jì)和發(fā)放都是使用人工方式處理,工作量大的時(shí)候,出現(xiàn)錯(cuò)誤的機(jī)率也隨之升高,不僅花費(fèi)財(cái)務(wù)人員大量的時(shí)間,而且往往由于抄寫不慎,或者由于計(jì)算的疏忽,出現(xiàn)工資發(fā)放錯(cuò)誤的現(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è)對(duì)具體問題的反復(fù)理解和抽象的過程。理解就是對(duì)現(xiàn)實(shí)問題的

4、理解,要弄清楚究竟需要解決什么問題。抽象就是除去問題的表面,提取問題的本質(zhì),建立問題的邏輯模型,以便于以后階段的系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)。需求分析階段是軟件產(chǎn)品生存命期中的一個(gè)重要階段,其根本任務(wù)是確定用戶對(duì)軟件系統(tǒng)的需求。所謂需求是指用戶對(duì)軟件的功能和性能的要求,就是用戶希望軟件能什么事情,完成什么樣的功能,達(dá)到什么性能。通常需求分為兩種類型:一種是功能性需求,一種是非功能性需求,這一點(diǎn)也需要有一種清楚的認(rèn)識(shí)。功能性需求是指需要計(jì)算機(jī)系統(tǒng)解決的問題,也就是對(duì)數(shù)據(jù)的處理要求,這是一類最主要的需求。非功能性需求是指實(shí)際使用環(huán)境所要求的需求,往往是一些限制要求,例如:性能要求,可靠性要求,安全保密要求,等等

5、。工資管理既涉及到企業(yè)勞動(dòng)人事的管理,同時(shí)也是企業(yè)財(cái)務(wù)管理的重要組成部分。工資管理需要和人事管理相聯(lián)系,同時(shí)連接工時(shí)考勤和醫(yī)療保險(xiǎn)等等,來生成企業(yè)每個(gè)職工的基本工資、津貼、醫(yī)療保險(xiǎn)、保險(xiǎn)費(fèi)、實(shí)際發(fā)放工資等。資金是企業(yè)生存的主要元素,資金的流動(dòng)影響到企業(yè)的整體運(yùn)作,企業(yè)員工的工資是企業(yè)資金管理的一個(gè)重要的組成部分。早期的工資統(tǒng)計(jì)和發(fā)放都是使用人工方式處理紙質(zhì)材料,不僅花費(fèi)財(cái)務(wù)人員大量的時(shí)間且不易保存,往往由于個(gè)人的因素抄寫不慎或計(jì)算疏忽,出現(xiàn)工資發(fā)放錯(cuò)誤的現(xiàn)象。早期工資管理多采取紙質(zhì)材料和具有較強(qiáng)的時(shí)間限制。基于以上原因,企業(yè)工資管理系統(tǒng)使用電腦安全保存、快速計(jì)算、全面統(tǒng)計(jì),實(shí)現(xiàn)工資管理的系統(tǒng)化

6、、規(guī)范化、自動(dòng)化。企業(yè)工資管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),前臺(tái)程序開發(fā)工具采用微軟的VB6,后臺(tái)數(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ī)范化和自動(dòng)化。能夠和認(rèn)識(shí)管理系統(tǒng)、考勤管理系統(tǒng)相結(jié)合,真正實(shí)現(xiàn)企業(yè)高效、科學(xué)、現(xiàn)代化的員工管理。系統(tǒng)最終實(shí)現(xiàn)的主要功能如下:·企業(yè)人員信息管理部分:包括設(shè)置員工的基本工資和其他項(xiàng)目的金額,如獎(jiǎ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ái),存儲(chǔ)著所有的信息,在信息管理系統(tǒng)中有著很重要的地位。數(shù)據(jù)庫設(shè)計(jì)的好與壞,直接影響到這個(gè)系統(tǒng)的運(yùn)行效率。良好的數(shù)據(jù)庫設(shè)計(jì),可以提高數(shù)據(jù)信息的存儲(chǔ)效率,確保數(shù)據(jù)信息的完整性和一致性。針對(duì)企業(yè)工資信息管理系統(tǒng)的需求,通過對(duì)員工工資計(jì)算過程的內(nèi)容分析,為本系統(tǒng)設(shè)計(jì)如下的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):·用戶基本信息:包括序號(hào),用戶名稱,密碼。密碼用戶基本信息序號(hào)用戶名稱圖4.1 基本工資實(shí)

9、體E-r圖·人員基本信息:包括序號(hào),姓名,職務(wù)等。人員基本信息序號(hào)姓名職務(wù)圖4.2 其他項(xiàng)目實(shí)體E-R圖·工資基本信息:包括序號(hào),姓名,月份,工資,獎(jiǎng)金和補(bǔ)助等。年份補(bǔ)助獎(jiǎng)金工資基本信息序號(hào)姓名月份工資圖4.3計(jì)算公式實(shí)體E-R圖啟動(dòng)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平臺(tái)的設(shè)計(jì)5.1 “登錄模塊”詳細(xì)設(shè)計(jì)1、實(shí)現(xiàn)目標(biāo):登錄模塊的詳細(xì)設(shè)計(jì)主要是用戶登錄的一個(gè)界面,判斷登錄的用戶是管理員還是普通用

10、戶,進(jìn)入后將面對(duì)的是主界面,從而進(jìn)行相關(guān)的操作。登錄的界面主要由用戶名和密碼的信息,確定和取消的按鈕組成。通過標(biāo)題可以知道此系統(tǒng)的大概內(nèi)容,由此,登錄界面的設(shè)計(jì)完成。 2、界面:圖5.1 用戶登陸界面登陸界面程序流程圖如下:輸入用戶名密碼開始用戶名密碼是否正確進(jìn)入系統(tǒng)密碼錯(cuò)誤是否圖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è)窗體的好處是可以使程序更加有條理。對(duì)于一個(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;請(qǐng)輸入月份,序號(hào),姓名,工資,獎(jiǎng)金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text7.SetFocus Exit SubEnd IfIf Trim(Text1.Text) = "" Then MsgBox "請(qǐng)輸入月份,序號(hào),姓名,工資,獎(jiǎng)金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text1.SetFocus Exit SubEnd IfIf Trim(Text2.Text) = "" Then MsgB

19、ox "請(qǐng)輸入月份,序號(hào),姓名,工資,獎(jiǎng)金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text2.SetFocus Exit Sub End IfIf Trim(Text3.Text) = "" Then MsgBox "請(qǐng)輸入月份,序號(hào),姓名,工資,獎(jiǎng)金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text3.SetFocus Exit Sub End IfIf Trim(Text4.Text) = "" T

20、hen MsgBox "請(qǐng)輸入月份,序號(hào),姓名,工資,獎(jiǎng)金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text4.SetFocus Exit Sub End IfIf Trim(Text5.Text) = "" Then MsgBox "請(qǐng)輸入月份,序號(hào),姓名,工資,獎(jiǎng)金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text5.SetFocus Exit Sub End If If Trim(Text6.Text) = "

21、;" Then MsgBox "請(qǐng)輸入月份,年份,序號(hào),姓名,工資,獎(jiǎng)金,補(bǔ)助,年份!", vbOKOnly + vbExclamation, "" Text6.SetFocus Exit Sub End If sql = "select * from 人員信息 where 序號(hào)='" & 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 = "序號(hào) = '" & 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 "請(qǐng)選擇查詢方式!", 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("確定要?jiǎng)h除嗎?", 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 序號(hào)='" & Text1.Text & "'and 姓名='" & Text2.Text & "'"rs_addbook.Open sql, conn, adOpenKeyset, adLockPessimisticIf Not rs_addbook.EOF Thensql = "select * from 工資信息 where 序號(hào)='" & 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 序號(hào)='" & 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 "請(qǐng)選擇要修改的

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' 注冊(cè)表關(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 ' 注冊(cè)表關(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 ' 試圖從注冊(cè)表中獲得系統(tǒng)信息程序的路徑及名稱. If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then ' 試圖僅從注冊(cè)表中獲得系統(tǒng)信息程序的路徑. ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC,

49、SysInfoPath) Then ' 已知32位文件版本的有效位置 If (Dir(SysInfoPath & "MSINFO32.EXE") <> "") Then SysInfoPath = SysInfoPath & "MSINFO32.EXE" ' 錯(cuò)誤 - 文件不能被找到. Else GoTo SysInfoErr End If ' 錯(cuò)誤 - 注冊(cè)表相應(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 ' 打開的注冊(cè)表關(guān)鍵字句柄 Dim hDepth A

51、s Long ' Dim KeyValType As Long ' 注冊(cè)表關(guān)鍵字?jǐn)?shù)據(jù)類型 Dim tmpVal As String ' 注冊(cè)表關(guān)鍵字值的臨時(shí)存儲(chǔ)器 Dim KeyValSize As Long ' 注冊(cè)表關(guān)鍵自變量的尺寸 '- ' 打開 HKEY_LOCAL_MACHINE. 下的 RegKey '- rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' 打開注冊(cè)表關(guān)鍵字 If (rc <> ERROR_SUCCESS) Then

52、GoTo GetKeyError ' 處理錯(cuò)誤. tmpVal = String$(1024, 0) ' 分配變量空間 KeyValSize = 1024 ' 標(biāo)記變量尺寸 '- ' 檢索注冊(cè)表關(guān)鍵字的值. '- rc = RegQueryValueEx(hKey, SubKeyRef, 0, _ KeyValType, tmpVal, KeyValSize) ' 獲得/創(chuàng)建關(guān)鍵字值 If (rc <> ERROR_SUCCESS) Then GoTo GetKeyError ' 處理錯(cuò)誤 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論