【正文】
來存儲活動投票的基本信息。tbOA_dept部門表主要用來存儲公司部門信息的表。就本系統(tǒng)而言,該模塊主要用于實現(xiàn)數(shù)據(jù)庫的共享連接。代碼如下:Public pstr As StringPublic Sub main()39。Persist Security Info=False。pwd=sa。Data Source=APC39?!跋到y(tǒng)登錄”窗體用于難操作員及其密碼,主要通過打開數(shù)據(jù)庫連接、打開數(shù)據(jù)結(jié)合if語句,判斷用戶輸入的操作員及密碼是否符合數(shù)據(jù)庫中的操作員和密碼,如果符合則允許登錄,并給予相應(yīng)的權(quán)限,否則提示用戶不存在。添加兩個“Label”控件,設(shè)置其 BackStyle 屬性設(shè)置為“0Transparent”。添加兩個“CommondButton”控件,分別將其Caption屬性設(shè)置為“登錄”、“退出”。 + + 39。判斷是否存在用戶 If Then MsgBox 沒有這個用戶,請重新輸入用戶名! = 39。(1) = 39。的樹狀菜單為操作員的樣式 If (2) = False Then(1).Text = 操作職員: amp。顯示系統(tǒng)時間(2).Text = Format(Now, m/d/yy) 39。擁有操作權(quán)限,設(shè)置TreeView控件的樹狀菜單為管理員的樣式 (1).Text = 管理職員: amp。密碼不正確則顯示提示框MsgBox 輸入密碼不正確,請重新輸入!,vbOKOnly + vbExclamation, 警告 = End If End IfEnd Sub 主界面設(shè)計 主界面主要包括樹狀菜單、工具欄、狀態(tài)欄、時間顯示以及顯示OA辦公系統(tǒng)的最新新聞和通知。2)添加“ImageList”控件。添加方法為:在“部件”對話框中選中“ Microsoft Windows Common Controls (SP6)”列表項?!癟reeView”控件屬于“ActiveX”rpwr ,使用前必須將其添加到工具箱中。5)添加“StatusBar”(狀態(tài)欄)控件,它主要用來顯示操作員信息、系統(tǒng)時間及公司名稱網(wǎng)站?!癝tatusBar”控件的名稱為默認(rèn)名,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“屬性頁”命令,為“StatusBar”控件添加3個窗格,第一個窗格顯示系統(tǒng)操作員、第二個窗格顯示系統(tǒng)日期、第三個窗格顯示公司名稱和網(wǎng)址。在“Form”窗體的“Activate”事件下添加如下代碼:39。展開全部節(jié)點 (i).Expanded = True Next iEnd Sub單擊樹狀菜單中的菜單,根據(jù)所選擇的菜單顯示相應(yīng)的窗體。單擊樹狀菜單中的菜單時,根據(jù)所選擇的菜單顯示相應(yīng)的窗體Private Sub TreeView1_NodeClick(ByVal Node As )39。Private Sub Form_Load()39。Provider=。User ID=sa。Initial Catalog=db_OA 39。設(shè)置通知 = pstr = select top 8 notice_date,notice_person,notice_acceptdept,notice_acceptperson,notice_text from tboa_notice order by notice_date descSet = adoNoticeCall setNoticeDataGrid_CaptionEnd Sub每隔一分鐘就更新一次最新新聞和最新通知。Private Sub Timer1_Timer() = NowIf CStr(Now) Then = Now39。刷新通知 = select top 8 notice_date,notice_person,notice_acceptdept,notice_acceptperson,notice_text from tboa_notice order by notice_date desc Call setNoticeDataGrid_CaptionEnd IfEnd Sub自定義過程setNewsDataGrid_Caption()用來初始化新聞MSHFlexGrid2控件的列標(biāo)題和表格寬度。代碼設(shè)計如下:Private Sub Toolbar1_ButtonClick(ByVal Button As )Select Case Case 139。 如果為真則轉(zhuǎn)到errhandler 處,執(zhí)行exit sub 語句39。 設(shè)置過濾器 = 所有文件 (*.*)|*.*|文本文件 (*.txt)|*.txt|Word 文檔 (*.doc)|*.doc|可執(zhí)行文件 (*.exe)|*.exe|所有圖片 (*.BMP,*.GIF,*,PNG,*.JPEG)|*.BMP,*.GIF,*,PNG,*.JPEG39。 用戶按了“取消”按鈕Exit SubCase 2 Case 3 Case 4Case 5 Unload Me End SelectEnd Sub。其中,發(fā)布通知用來將通知發(fā)布給某部門某人,接收用來接收其他職員發(fā)布的通知,已發(fā)通知是用來查看發(fā)布給其他職員的通知。顯示用戶For i = 0 To 1 (0).ValueNext i39。顯示日期 = NowEnd Sub“發(fā)布通知”按鈕的Click事件代碼如下:Private Sub Command1_Click()If = Then MsgBox 請選擇接收通知的部門!, vbInformation, 提示: Exit SubElseIf = Then MsgBox 請選擇接收通知的人!, vbInformation, 提示: Exit SubElseIf = Then MsgBox 請輸入通知內(nèi)容!, vbInformation, 提示: Exit SubEnd If(1).Value = (2).Value = (3).Value = (4).Value = (5).Value = 0(6).Value = MsgBox 您的通知已經(jīng)發(fā)送成功!, vbInformation, 提示: = = = End Sub 2 接收通知 “接收通知”:“查詢”按鈕的代碼如下:Private Sub cmdFind_Click() = pstr = select * from tboa_notice where notice_date between 39。and 39。and notice_acceptperson=39。order by notice_date descSet = adoNoticeCall setDataGrid_CaptionEnd Sub“顯示所有通知”按鈕代碼如下:Private Sub cmdshow_Click() = pstr = select * from tboa_notice where notice_acceptperson =39。 order by notice_date descSet = adoNoticeCall setDataGrid_CaptionEnd Sub 3 已發(fā)通知 “已發(fā)通知”:主要代碼如下:Private Sub Form_Load() = pstr = select notice_date,notice_person,notice_acceptdept,notice_acceptperson,notice_text from tboa_notice where notice_person=39。 amp。 order by notice_dateSet = adoNoticeCall setNotice_CaptionEnd Sub 新聞管理 新聞管理包含3個部分:新聞發(fā)布、新聞接收、已發(fā)新聞。下面介紹新聞發(fā)布、新聞接收和已發(fā)新聞的開發(fā)過程。該控件屬于“ActiveX”控件,在使用之前必須從“部件”對話框中添加工具箱中,添加方法為:在“部件”對話框中選中“Microsoft Windows Common Controls2 ”列表項。2 新聞接收1)添加4個“CommandButton”和一個“ADO”控件。3)添加“DataGrid”控件,使用默認(rèn)名稱。3 已發(fā)新聞“已發(fā)新聞”:添加“ADO”控件,名稱為“adoNews”,設(shè)置其“Visible”屬性為“False”。 文件管理 1. 文件傳送文件傳送在OA辦公自動化系統(tǒng)中占據(jù)很重要的位置,本系統(tǒng)的文件傳送可以傳送多種類型的文件(如:exe\bat\rar\frm\doc等)。其它控件設(shè)置,在這里就不再贅述了。* 建立“adoDept”控件的數(shù)據(jù)庫連接。* 獲取系統(tǒng)操作員的姓名,并通過“txtName”控件顯示出來。 在“Form”窗體的“Load”事件中添加如下代碼:Private Sub Form_Load() = 39。設(shè)置bo2 = pstr = select user_name from dboa_userFor i = 0 To 1 (0).ValueNext i39。設(shè)置鼠標(biāo)的形狀,沙漏型的Set = New = pstrSet rs = New select * from tboa_file, , adOpenStatic, adLockOptimisticSet st = New = adTypeBinary (1).Value = (2).Value = (3).Value = (4).Value = (5).Value = (6).Value = Now(7).Value = (8).Value = 39。 設(shè)置“CancelError”為 True = TrueOn Error GoTo errHandler 39。 設(shè)置標(biāo)志,標(biāo)題欄 = cdlOFNHideReadOnly39。 (*.txt)|*.txt|Batch Files (*.bat)|*.bat39。文本框顯示文件路徑 = Exit SuberrHandler:39。End Sub2. 文件接收1)窗體設(shè)計文件接收”窗體主要用來接收其他員工傳送來的文件,并且將文件下載保存到本機中。“文件接收”:2)代碼設(shè)計本窗體中聲明變量,代碼如下:Public filePath As StringDim As , rs As , st As 通過鼠標(biāo)選擇“DataGrid”表格中數(shù)據(jù),然后單擊“刪除文件記錄”按鈕,將選中的文件數(shù)據(jù)刪除。當(dāng)數(shù)據(jù)表中沒有數(shù)據(jù)時,進(jìn)行錯誤處理End SubPrivate Sub cmdexit_Click()Unload MeEnd SubPrivate Sub cmdFind_Click() = pstr = select * from tboa_file where file_acceptperson=39。 amp。 and file_date between 39。 str() amp。 and 39。 str() amp。 order by file_date desc Call setDataGrid_CaptionEnd Sub在日期輸入框中輸入開始日期和截止日期后,“查詢”按鈕,將查詢結(jié)果顯示在DataGrid控件中,代碼如下:Private Sub cmdFind_Click() = pstr = select * from tboa_file where file_acceptperson=39。 amp。 and file_date between 39。 str() amp。 and 39。 str() amp。 order by file_date desc End Sub單擊“顯示所有文件”按鈕的事件代碼如下 :Private Sub cmdshow_Click() = pstr = select * from tboa_file where file_acceptperson =39。 amp。 order by file_date desc End Sub雙擊“DataGrid”表格中的一行,可以下載文件的事件代碼如下:Private Sub DataGrid1_DblClick()On Error GoTo UNEXIf MsgBox(是否接收 amp。 傳送來的【 amp。 】嗎?, vbQuestion + vbYesNo) = vbYes Then = (8).Text39。 如果為真則轉(zhuǎn)到errhandler 處,執(zhí)行exit sub 語句filePath = = 11Set = New = pstrSet rs = New select * from tboa_file where file_id = 39。 (0)