【正文】
zeControls End If = (0).Width = 5000 End Sub Sub SizeControls(X As Single) On Error Resume Next 39。開始在 ListView 中顯示數(shù)據(jù) classid = Left(, 6) Call ListviewLoad(classid) ElseIf = S Then Call SqlListview(SqlSearch) Else End If End Sub Public Sub ListviewLoad(ByVal classid As String) Dim Listit As ListItem = lvwManual = 3 29 Dim ef As New classid = Left(classid, 6) sqlstr = select * from StuInfo where SID like 39。 order by SID sqlstr, con, 1, 1 Do While Not Set Listit = (, , (SID)) (1) = (SName) (2) = (SGender) (3) = (SMinzu) (4) = (SZhengzhi) (5) = (SDormitory) (6) = (SAddress) Loop : Set ef = Nothing End Sub 在顯示該部門 下面所 有員工 信息的同時(shí),用戶可以對(duì)記錄進(jìn)行管理:添加新記錄、編輯或者刪除當(dāng)前記錄,為此在 Listview 中創(chuàng)建右鍵菜單,用來對(duì)記錄進(jìn)行操作。O)”。修改員工 資料 Call End Sub Public Sub ModifyStu() 39。 Private Sub pop5_Click() 39。 amp。在 Listview 中列出了各 員工檔案 信息的身份證 號(hào) 和姓名以供用戶進(jìn)行導(dǎo)航,但是在實(shí)際管理中,還需要顯示出某一條員工 信息的詳細(xì)列表。顯示詳細(xì)資料 Call End Sub Public Sub ListView_DblClick() On Error Resume Next If Then SelectNum = If SelectNum Then 39。 StuNum amp。如果為添加新的 員工 資料,則將 身份證號(hào) 的前 6 位置為該部門 的 ID,并將 身份證號(hào)輸入框的 SelStart 屬性設(shè)為 6。 ) = 添加( amp。M) Dim rs As New , sqlstr As String sqlstr = select * from StuInfo where SID=39。 sqlstr, con 39。 EditNum amp。 EditNum amp。確定添加或者修改,保存數(shù)據(jù) 男 女 = 0 33 團(tuán)員 黨員 預(yù)備黨員 = 1 漢族 瑤族 土家族 侗族 白族 苗族 回族 壯族 = 0 If EditNum = 00000000 Then = 添加 員工資料(部門 : amp。 sqlstr, con, 1, 1 StuInfo(0).Caption = (SID) StuInfo(1).Caption = (SName) StuInfo(2).Caption = (SGender) StuInfo(3).Caption = (SZhengzhi) StuInfo(4).Caption = (SPlace) StuInfo(5).Caption = (SMinzu) StuInfo(6).Caption = (SBirthday) StuInfo(7).Caption = (SDormitory) StuInfo(8).Caption = (SAddress) StuInfo(9).Caption = (SCode) StuInfo(10).Caption = (STel) StuInfo(11).Caption = (SRemark) : Set rs = Nothing 1 End Sub 3. 3. 6 添加 /修改員工 信息窗體 (frmAddstu) 當(dāng)窗體加載時(shí),首先判斷是修改員工資料還是添加新的員工資料,如果身份證 號(hào)為“ 00000000”,則為添加新的員工資料,反之則為修改員工 資 料。 Public Sub LoadStuInfo(StuNum As String) 32 sqlstr = select * from StuInfo where SID=39。當(dāng)用戶單擊“顯示該生詳細(xì)資料”子菜單時(shí),顯示 frmstuinfo 窗體(圖 ),并以員工的身份證號(hào)為關(guān)鍵字,將該員工 的全部資料賦值給 frmstuinfo 中的對(duì)應(yīng)文本框。 39。 amp。 在刪除記錄過程中,使用員工的身份證 號(hào)作為關(guān)鍵字,調(diào)用 Execute 方法來刪除當(dāng)前記錄。添加員工 資料 Call End Sub Public Sub AddStu() Call (00000000) 30 End Sub 修改員工 資料的 Click 事件的設(shè)計(jì)思路和添加員工 資料的設(shè)計(jì)思路類似,但是由于只是對(duì)記錄進(jìn)行修改,不需要調(diào)用 AddNew 操作,只要對(duì)數(shù)據(jù)進(jìn)行 Update操作即可。為了體現(xiàn)這一關(guān)系,需要將部門編號(hào)賦給顯示身份證 號(hào)的文本框。 classid amp。 Private Sub TreeView_NodeClick(ByVal Node As ) 39。 Private Sub Form_Load() Call TreeviewLoad Dim clmX As ColumnHeader Set clmX = (, , 身份證 號(hào) , / 7) ?? End Sub 在 Form_Load 事件中調(diào)用了 TreeviewLoad 函數(shù),由于篇幅省略該函數(shù)的代碼,具體實(shí)現(xiàn)見源程序。 sqlstr MsgBox 您的密碼更新成功,請(qǐng)牢記你的密碼! , vbInformation Unload Me End If Else MsgBox 異常錯(cuò)誤! , vbInformation End If : Set rs = Nothing End Sub 修改完畢后,單擊“取消”退出此窗體。 where UserID=39。 sqlstr, con, 1, 1 If Not Then 26 If rs(UserPWD) Oldpwd Then MsgBox 你輸入的原密碼不對(duì)! , vbInformation = = = Exit Sub Else sqlstr = update UserInfo set UserPWD=39。 Private Sub Command1_Click() ?? sqlstr = select UserPWD from UserInfo where UserID=39。在 MDI 主窗體編輯窗口中,單擊“系統(tǒng)選項(xiàng) /修改個(gè)人密碼”,添加如下代碼: Private Sub filemenu12_Click() 39。 39。 39。 amp。 成功 , vbOKOnly, 添加系統(tǒng)用戶 = = = = 39。Userpower amp。 Username amp。 39。 39。 Private Sub Command4_Click() sqlstr = insert into UserInfo(UserID,UserPWD,UserName,UserPower) sqlstr = sqlstr amp。 Private Sub Command4_Click() ?? Do While Not If = (UserID) Then MsgBox 已經(jīng) 存在 用戶 名為 amp。 amp。 (2) = ef(UserName) (3) = ef(UserPower) Loop Set ef = Nothing End Sub 3. 添加用戶 在 Textbox 中輸入了相應(yīng)的數(shù)據(jù)以后,按添加按鈕則調(diào)用該按鈕的 Click事件,代碼如下 當(dāng)單擊“添加”按鈕時(shí),首先檢查輸入的用戶名和密碼是否 為空,代碼如下: Private Sub Command4_Click() If Trim() = Then MsgBox 登陸用戶名不允許為空! , vbOKOnly + 48, 提示: Exit Sub End If If InStr(1, Trim(), 39。窗體的控件設(shè)計(jì)如圖 所示 圖 用戶管理界面 如果登陸的用戶類型是管理員,用戶管理一項(xiàng)是可用的,當(dāng)單擊該子菜單時(shí),19 將會(huì)出現(xiàn)用戶管理窗口,管理員可以對(duì)系統(tǒng)用戶進(jìn)行添加和刪除操作。 \, , , 1 End Sub 6.“給我發(fā)郵件”子菜單的代碼 如果用戶單擊了“給我發(fā)郵件”子菜單,則會(huì)調(diào)用 API 函數(shù),調(diào)用 Outlook。有介于此,通常來說都是在 QueryUnload 中詢問用戶是否要退出當(dāng)前窗體。 當(dāng)一個(gè)應(yīng)用程序關(guān)閉時(shí),可使用 QueryUnload 或 Unload 事件過程將 Cancel屬性設(shè)置為 True 來阻止關(guān)閉過程。 amp。 Lib Alias ShellExecuteA (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) 2.判斷用戶權(quán)限 如果登陸的為普通用戶類型的用戶,則用戶不能使用“用戶管理”這一功能,而對(duì)于管理員類型的用戶,則沒有此限制。 在工程中添加一個(gè) MDI 窗口,取名為“ ”,并為 MDI 窗體進(jìn) 行菜單和代碼的設(shè)計(jì)。保存當(dāng)前登陸用戶名 LoginPower = (3) 39。 sqlstr, con, 1, 1 If Not Then If rs(UserPWD) Userpwd Then 39。 根據(jù)以上的設(shè)計(jì), cmdOkCancel 的 Click 事件的代碼如下: Private Sub cmdOkCancel_Click(Index As Integer) Select Case Index Case 0 ?? Userid = Trim() Userpwd = MD5(Trim()) sqlstr = select * from UserInfo where UserID=39。這里附上本程序的登陸界面。 2. 添加部件:?jiǎn)螕艄こ滩藛沃械牟考x項(xiàng),添加 Microsoft ADO Data Control (OLEDB)、 Microsoft Common Dialog Control (SP3) 、 Microsoft FlexGrid Control 、 Microsoft Windows Common Controls (SP4)和Microsoft Windows Common Controls2 五項(xiàng)。 1. 用戶信息表( UserInfo): 11 字段名 數(shù)據(jù)類型 說明 是否為空 是否為關(guān)鍵字 UserID 文本 用戶名 Not Null Primary Key UserPWD 文本 用戶密碼 Not Null UserName 文本 姓名 Not Null UserPower 文本 使用權(quán)限 Not Null 2. 公司員工 信息表(