




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、企業(yè)管理軟件設(shè)計(jì)開發(fā)(部門維護(hù)系統(tǒng))設(shè)計(jì)文檔設(shè)計(jì)者:羅紅亮?xí)r間:2009-5-6目錄1 系統(tǒng)介紹31.1 軟件操作流程圖3 1.2 VB 下方法調(diào)用流程圖4 2 數(shù)據(jù)庫操作部分52.1 數(shù)據(jù)庫連接52.2 VB 下對(duì)數(shù)據(jù)庫操作語句(提取、插入、刪除等)53 部門數(shù)據(jù)編輯操作部分63.1 在選中部門下添加部門信息63.2 修改選中部門信息73.3 刪除選中部門信息84 部門信息保存操作部分105 關(guān)于該系統(tǒng)115.1 系統(tǒng)所存在的不足116 設(shè)計(jì)總結(jié)121前言1.1軟件操作流程圖圖1.1 軟件圖形界面系統(tǒng)界面文件/連接數(shù)據(jù)庫點(diǎn)擊TreeView控件下欲操作部門編號(hào)編輯/添加部門信息編輯/修改部門
2、信息編輯/刪除選中部門信息圖1.2 軟件操作流程圖1.2 VB 下方法調(diào)用流程視圖BMWHFm_ConnectSQL.ShowFm_miAdd.ShowFm_miDelete.ShowFm_miAbout.ShowFm_miModify.ShowConnectSQL()CommBOk_Click()CommBOk_Click()CommBOk_Click()CommBOk_Click()BMWH.Form_Load()BMWH.Form_Load()BMWH.Form_Load()BMWH.Form_Load()BMWH.Form_Load()miSave圖1.3 方法調(diào)用流程圖2 數(shù)據(jù)庫操作
3、部分2.1數(shù)據(jù)庫連接在軟件打開時(shí)界面所有控件內(nèi)容為空,通過 “文件/連接數(shù)據(jù)庫” 從數(shù)據(jù)庫下載數(shù)據(jù)到TreeView控件和MSFlexGrid控件,從而有如圖1.1所示的效果。連接數(shù)據(jù)庫通過如下配置實(shí)現(xiàn):Public conn As Variant '定義數(shù)據(jù)庫連接字符Public rs As Variant '定義創(chuàng)建Recordset 對(duì)象 Set conn = New ADODB.Connection Set rs = New ADODB.Recordset Set rs1 = New ADODB.Recordset conn.ConnectionString = &qu
4、ot;Driver=sql server;server=USER-EF373E3BAF;uid=sa;pwd=123456;database=BMDB" conn.ConnectionTimeout = 30 conn.Open在連接數(shù)據(jù)庫前首先要在VB菜單中“工程/引用”從中選擇 microsoft activeX Data objects 2.6 library和 microsoft activeX Data objects recordset 2.8 library兩個(gè)組件,這是在連接數(shù)據(jù)前所必做的工作。目的要為接下來定義ADO的連接對(duì)象做好準(zhǔn)備。2.2 VB 下對(duì)數(shù)據(jù)庫操作語
5、句(提取、插入、刪除等)提取語句:rs.Open "select * from BMDM", conn, adOpenStatic, adLockReadOnly, adCmdText插入語句:sql = "insert into BMDM(表元素) values (待插入值)"conn.Execute (sql) '執(zhí)行上面的sql語句刪除語句:sql = "delete from BMDM where 條件表達(dá)式" conn.Execute (sql)3 部門數(shù)據(jù)編輯操作部分3.1在選中部門下添加部門信息部分程序如下:判斷
6、部門編號(hào)在組織機(jī)構(gòu)中是否有同編號(hào)處理代碼:rs.Open "select * from BMDM", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF If txt5 = "0000" Then BMID_Flag = True End If If txt5 = rs("BMID") Then BMID_Flag = True End If rs.MoveNext Wend rs.Close判斷部門名稱在同級(jí)下是否同名處理代碼:rs.Open "se
7、lect BMMC from BMDM where SJBMID='" & BMWH.TV_Select & "'", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF If txt6 = rs("BMMC") Then BMMC_Flag = True End If rs.MoveNext Wendrs.Close做插入處理部分代碼:If BMID_Flag = True Then MsgBox "部門編號(hào)在組織機(jī)構(gòu)中有同編號(hào)
8、的同名沖突,請(qǐng)重設(shè)!", vbOKOnly, "沖突提示" txt(5).Text = "" txt(5).SetFocus BMID_Flag = False Else If BMMC_Flag = True Then MsgBox "部門名稱與同級(jí)目錄下部門名稱有同名沖突,請(qǐng)重設(shè)!", vbOKOnly, "沖突提示" txt(6).Text = "" txt(6).SetFocus BMMC_Flag = False Else If txt5 = "" The
9、n MsgBox "部門編號(hào)不能為空,請(qǐng)?jiān)O(shè)置!", vbOKOnly, "非空提示" txt(5).SetFocus Else If txt6 = "" Then MsgBox "部門名稱不能為空,請(qǐng)?jiān)O(shè)置!", vbOKOnly, "非空提示" txt(6).SetFocus Else sql = "insert into BMDM(BMID,BMMC,BZ,SJBM,SJBMID) values ('" & txt5 & "' ,
10、'" & txt6 & "','" & txt7 & "','" & txt8 & "','" & txt9 & "')" conn.Execute (sql) txt(5).Text = "" txt(6).Text = "" txt(7).Text = "" MsgBox "部門已經(jīng)成功添加!",
11、 vbOKOnly, "OK" BMWH.Form_Load Unload Me End If End If End IfEnd If先判斷整個(gè)組織機(jī)構(gòu)中是否有同編號(hào),如果有則將存在同編號(hào)標(biāo)志BMID_Flag置為True,然后再判斷同級(jí)下是否有同部門名稱,如果有則將同部門名稱標(biāo)志置BMMC_Flag置為True。接下來就根據(jù)標(biāo)志位的取值做部門的插入操作。3.2修改選中部門信息做修改處理部分代碼:If BMID_Flag = True Then MsgBox "部門編號(hào)在組織機(jī)構(gòu)中有同編號(hào)的同名沖突,請(qǐng)重設(shè)!", vbOKOnly, "沖突提示
12、" Txt(5).Text = txt5 Txt(5).SetFocus BMID_Flag = False Else If BMMC_Flag = True Then MsgBox "部門名稱與同級(jí)目錄下部門名稱有同名沖突,請(qǐng)重設(shè)!", vbOKOnly, "沖突提示" Txt(6).Text = txt6 Txt(6).SetFocus BMMC_Flag = False Else If txt5 = "" Then MsgBox "部門編號(hào)不能為空,請(qǐng)?jiān)O(shè)置!", vbOKOnly, "非空
13、提示" Txt(5).SetFocus Else If txt6 = "" Then MsgBox "部門名稱不能為空,請(qǐng)?jiān)O(shè)置!", vbOKOnly, "非空提示" Txt(6).SetFocus Else 'sql = "update BMDM set BMID='" & txt5 & "',BMMC='" & txt6 & "',BZ='" & txt7 & &qu
14、ot;' where BMID='" & txt5 & "'" rs.Open "select * from BMDM where SJBMID='" & Txt(0).Text & "'", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF '將其子部門的 SJBMID 對(duì)應(yīng)的修改成修改項(xiàng) txt0 = rs("BMID") txt1 = rs(&q
15、uot;BMMC") txt2 = rs("BZ") txt3 = rs("SJBM") txt4 = txt5 sql = "delete from BMDM where BMID='" & txt0 & "'" conn.Execute (sql) sql = "insert into BMDM(BMID,BMMC,BZ,SJBM,SJBMID) values ('" & txt0 & "' , '&
16、quot; & txt1 & "','" & txt2 & "','" & txt3 & "','" & txt4 & "')" conn.Execute (sql) rs.MoveNext Wend rs.Close sql = "delete from BMDM where BMID='" & Txt(0).Text & "'&qu
17、ot; conn.Execute (sql) sql = "insert into BMDM(BMID,BMMC,BZ,SJBM,SJBMID) values ('" & Txt(5).Text & "' , '" & Txt(6).Text & "','" & Txt(7).Text & "','" & Txt(8).Text & "','" & Tx
18、t(9).Text & "')" conn.Execute (sql) BMWH.Form_Load MsgBox "部門已經(jīng)成功修改!", vbOKOnly, "OK" Unload Me End If End If End IfEnd If在做修改操作之前也和插入操作一樣要做組織機(jī)構(gòu)是否有同編號(hào)判斷和同級(jí)下是否有同部門名稱判斷,然后再依據(jù)判斷得到的標(biāo)志位進(jìn)行修改操作。3.3刪除選中部門信息做刪除處理部分代碼:將確定待刪除的數(shù)據(jù)以數(shù)組的形式存儲(chǔ)下來:rs.Open "select BMID from BMD
19、M where SJBMID='" & txt1 & "'", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF I = I + 1 ReDim Preserve DelSQL(I) DelSQL(I - 1) = rs("BMID") rs.MoveNext Wend rs.Closen = I I = 1 '從第二個(gè)數(shù)據(jù)開始遍歷 While I < n rs.Open "select BMID from BMD
20、M where SJBMID='" & DelSQL(I) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText While Not rs.EOF n = n + 1 ReDim Preserve DelSQL(n) '數(shù)據(jù)再次加載 DelSQL(n - 1) = rs("BMID") rs.MoveNext Wend rs.Close I = I + 1 Wend做刪除處理部分代碼:While I < n sql = "delete f
21、rom BMDM where BMID='" & DelSQL(I) & "'" '逐個(gè)刪除記錄 conn.Execute (sql) I = I + 1 Wend其實(shí)在做這一塊的時(shí)候最重要的是要加載選中部門的下級(jí)部門信息,然后再做級(jí)聯(lián)刪除,完成這一塊所用到的一個(gè)處理方法是通過數(shù)組多次加載來實(shí)現(xiàn)。具體做法是先將數(shù)組的第一個(gè)數(shù)據(jù)保存為當(dāng)前獲取的部門編號(hào)信息,然后通過遍歷數(shù)組中的部門編號(hào)信息從數(shù)據(jù)庫中查找到上級(jí)部門編號(hào)與當(dāng)前遍歷到的數(shù)組中編號(hào)相匹配的部門信息,然后擴(kuò)大數(shù)組空間,將查找到的匹配的部門編號(hào)信息再加載到數(shù)組中,直到數(shù)據(jù)
22、庫遍歷結(jié)束,這樣所有待刪除的信息也就全部加載到數(shù)組中了,然后要做的工作就是逐個(gè)刪除與數(shù)組中編號(hào)相同的數(shù)據(jù)庫信息了。4 部門信息保存操作部分做保存處理部分代碼:rs.Open "select * from BMDM", conn, adOpenStatic, adLockReadOnly, adCmdText CommD.CancelError = True On Error GoTo ErrHandle ' "取消"異常處理 CommD.FileName = "BMWH" CommD.DefaultExt = "BM
23、WH" CommD.Filter = "(*.doc)|*.doc" CommD.InitDir = "C:Documents and SettingsAll UsersDocuments" CommD.Action = 2 Open CommD.FileName For Output As #1 While Not rs.EOF Print #1, "部門編號(hào): ", rs("BMID") Print #1, "部門名稱: ", rs("BMMC") Print #1, "備注: ", rs("BZ") Prin
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 足球裁判員執(zhí)法實(shí)際問題試題及答案
- 2024游泳救生員法律意識(shí)與安全知識(shí)試題及答案
- 2023屆河北省唐山市高三下學(xué)期期末政治試題及答案
- 2024年農(nóng)業(yè)植保員知識(shí)拓展試題及答案
- 把握機(jī)會(huì)農(nóng)業(yè)植保員試題及答案
- 孩子不肯上學(xué)的協(xié)議書(2篇)
- 闡釋2024年籃球裁判員考試的重要性及試題與答案
- 裁判員心理素質(zhì)建設(shè)試題及答案
- 救生員考試概要試題及答案全解析
- 2025年中國(guó)公制絲錐板牙套裝市場(chǎng)調(diào)查研究報(bào)告
- 2024年浙江公路技師學(xué)院招聘筆試真題
- 2025年鍋爐水處理作業(yè)人員G3證考試試題題庫(200題)
- 2025年中考語文一輪專題復(fù)習(xí):古詩詞曲梳理復(fù)習(xí)重點(diǎn)整合
- 2025年中學(xué)教師資格考試《綜合素質(zhì)》教育教學(xué)能力提升教育政策分析試題(含答案)
- 2025-2030中國(guó)菊芋菊粉行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)氯堿行業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)預(yù)測(cè)研究報(bào)告
- 資料對(duì)外提供管理制度
- 2025-2030中國(guó)建筑智能化工程行業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)前景研究報(bào)告
- 呵護(hù)地球家園點(diǎn)亮綠色希望-2025年4月22日第56個(gè)世界地球日主題教育班會(huì) 高中主題班會(huì)優(yōu) 質(zhì)課件
- 第15課《青春之光》課件-2024-2025學(xué)年統(tǒng)編版語文七年級(jí)下冊(cè)
- 2023年4月1日江蘇省事業(yè)單位統(tǒng)考《綜合知識(shí)和能力素質(zhì)》(管理崗客觀題)原卷+答案
評(píng)論
0/150
提交評(píng)論