【正文】
rPWD = 39。 amp。 NewPWD amp。 39。where UserID=39。 sql = sql amp。 gUserName amp。 39。 transactSQL (sql) MsgBox 密碼已經(jīng)修改!, vbOKOnly + vbExclamation, 修改結(jié)果 Unload Me End If End IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load() = = = End Sub●數(shù)據(jù)備份模塊的實(shí)現(xiàn)Private Sub Form_Activate() 39。賦值給text1 = AEnd SubPrivate Sub Command1_Click() 39。確認(rèn)數(shù)據(jù)備份 = 11 YesNo = MsgBox(準(zhǔn)備好了嗎?, vbNo + vbQuestion) If YesNo = vbNo Then Exit Sub End If On Error GoTo errprompt = 11 MkDir ( amp。 :\數(shù)據(jù)備份) FileCopy amp。 \, amp。 :\數(shù)據(jù)備份\kucun amp。 Date amp。 .mdb = 0 MsgBox 數(shù)據(jù)已備份完畢。errprompt: = 0 Select Case Case 57 MsgBox 磁盤已滿!, vbCritical Case 70 MsgBox 磁盤寫保護(hù)!, vbCritical End SelectEnd SubPrivate Sub Command2_Click() Load main = True Unload MeEnd SubPrivate Sub Form_Unload(Cancel As Integer) = TrueEnd Sub●數(shù)據(jù)恢復(fù)模塊的實(shí)現(xiàn)Private Sub Form_Unload(Cancel As Integer) = TrueEnd SubPrivate Sub Dir1_Change() = End SubPrivate Sub Drive1_Change() = End SubPrivate Sub File1_Click() = amp。 \ amp。 End SubPrivate Sub Command1_Click()39。恢復(fù)指定路徑下的數(shù)據(jù)庫(kù) If = Then MsgBox 請(qǐng)選擇要恢復(fù)的數(shù)據(jù)! Else = 11 FileCopy amp。 \ amp。 , amp。 \ = 0 MsgBox 數(shù)據(jù)已恢復(fù)完畢! End IfEnd SubPrivate Sub Command2_Click() Unload MeEnd Sub對(duì)于貨品信息的瀏覽,主要采用了MSFlexGrid控件,它是一種Active控件,該控件提供了表格式界面,處理數(shù)據(jù)相當(dāng)靈活,具有只讀數(shù)據(jù)綁定、對(duì)表格數(shù)據(jù)進(jìn)行顯示和操作、數(shù)據(jù)分組排序、Data控件賦值、文本自動(dòng)換行等功能。但它無(wú)法對(duì)數(shù)據(jù)進(jìn)行動(dòng)態(tài)輸入,只能提供瀏覽功能。圖5-2 貨品信息界面具體代碼如下:Option ExplicitPrivate Sub Command1_Click()End SubPrivate Sub Form_Load() Dim sql As String sql = select * from 貨品信息 order by 貨品編碼 createList (sql)End SubPublic Sub createList(sql As String) Dim rs As New Dim i As Integer Dim rsGird As MSFlexGrid 39。設(shè)置表頭 (0, 0) = 貨品編碼 (0, 1) = 貨品名稱 (0, 2) = 類別 (0, 3) = 型號(hào) (0, 4) = 單位 (0, 5) = 倉(cāng)庫(kù)編碼 (0, 6) = 存放倉(cāng)庫(kù) (0, 7) = 入庫(kù)計(jì)劃單價(jià) (0, 8) = 出庫(kù)計(jì)劃單價(jià) (0, 9) = 原始庫(kù)存 (0, 10) = 默認(rèn)貨位 (0, 11) = 警戒底線庫(kù)存 (0, 12) = 警戒高線庫(kù)存 For i = 0 To 12 39。設(shè)置所有表格對(duì)齊方式 (i) = 4 Next i For i = 0 To 11 39。設(shè)置每列寬度 (i) = 1400 Next i (12) = 2000 Set rs = transactSQL(sql) If = False Then 39。顯示信息內(nèi)容 = 1 While Not = + 1 ( 1, 0) = rs(0) ( 1, 1) = rs(1) ( 1, 2) = rs(2) ( 1, 3) = rs(3) ( 1, 4) = rs(4) ( 1, 5) = rs(5) ( 1, 6) = rs(6) ( 1, 7) = rs(7) ( 1, 8) = rs(8) ( 1, 9) = rs(9) ( 1, 10) = rs(10) ( 1, 11) = rs(11) ( 1, 12) = rs(12) Wend End IfEnd Sub●貨品入庫(kù)登記模塊的實(shí)現(xiàn)圖5-3 入庫(kù)登記窗口Private Sub Form_Unload(Cancel As Integer) = vbDefaultEnd SubPrivate Sub datPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean) 39。錯(cuò)誤處理程序代碼置于此處 39。想要忽略錯(cuò)誤,注釋掉下一行 39。想要捕獲它們,在此添加代碼以處理它們 MsgBox Data error event hit err: amp。 DescriptionEnd SubPrivate Sub datPrimaryRS_MoveComplete(ByVal adReason As , ByVal pError As , adStatus As , ByVal pRecordset As ) 39。為這個(gè) recordset 顯示當(dāng)前記錄位置 = Record: amp。 CStr()End SubPrivate Sub datPrimaryRS_WillChangeRecord(ByVal adReason As , ByVal cRecords As Long, adStatus As , ByVal pRecordset As ) 39。驗(yàn)證代碼置于此處 39。下列動(dòng)作發(fā)生時(shí)該事件被調(diào)用 Dim bCancel As Boolean Select Case adReason Case adRsnAddNew Case adRsnClose Case adRsnDelete Case adRsnFirstChange Case adRsnMove Case adRsnRequery Case adRsnResynch Case adRsnUndoAddNew Case adRsnUndoDelete Case adRsnUndoUpdate Case adRsnUpdate End Select If bCancel Then adStatus = adStatusCancelEnd SubPrivate Sub cmdAdd_Click() On Error GoTo AddErr Exit SubAddErr: MsgBox End SubPrivate Sub cmdDelete_Click() On Error GoTo DeleteErr With .Delete .MoveNext If .EOF Then .MoveLast End With Exit SubDeleteErr: MsgBox End SubPrivate Sub cmdRefresh_Click() 39。只有多用戶應(yīng)用程序需要 On Error GoTo RefreshErr Exit SubRefreshErr: MsgBox End SubPrivate Sub cmdUpdate_Click() On Error GoTo UpdateErr adAffectAll Exit SubUpdateErr: MsgBox End SubPrivate Sub cmdClose_Click() Unload MeEnd Sub●出庫(kù)登記模塊的實(shí)現(xiàn)圖5-4 出庫(kù)登記窗口Private Sub Form_Unload(Cancel As Integer) = vbDefaultEnd SubPrivate Sub datPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean) 39。錯(cuò)誤處理程序代碼置于此處 39。想要忽略錯(cuò)誤,注釋掉下一行 39。想要捕獲它們,在此添加代碼以處理它們 MsgBox Data error event hit err: amp。 DescriptionEnd SubPrivate Sub datPrimaryRS_MoveComplete(ByVal adReason As , ByVal pError As , adStatus As , ByVal pRecordset As ) 39。為這個(gè) recordset 顯示當(dāng)前記錄位置 = Record: amp。 CStr()End SubPrivate Sub datPrimaryRS_WillChangeRecord(ByVal adReason As , ByVal cRecords As Long, adStatus As , ByVal pRecordset As ) 39。驗(yàn)證代碼置于此處 39。下列動(dòng)作發(fā)生時(shí)該事件被調(diào)用 Dim bCancel As Boolean Select Case adReason Case adRsnAddNew Case adRsnClose Case adRsnDelete Case adRsnFirstChange Case adRsnMove Case adRsnRequery Case adRsnResynch Case adRsnUndoAddNew Case adRsnUndoDelete Case adRsnUndoUpdate Case adRsnUpdate End Select If bCancel Then adStatus = adStatusCancelEnd SubPrivate Sub cmdAdd_Click() On Error GoTo AddErr