⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmainwatermeterinsteadinput.frm

📁 自来水公司的一个管理系统
💻 FRM
📖 第 1 页 / 共 3 页
字号:
    gConnect.BeginTrans     '--------开始事务
    On Error GoTo errHandleAdd
    
    '1 更新用户档案
    If bytCommandFlag = 0 Then  '输入--保存
        strSQL = "update UserRecord set MWmID='" & Trim(Me.txtNewMWmID.Text) & _
                "' where MWmID='" & Trim(Me.txtOldMWmID.Text) & "'"
        gConnect.Execute (strSQL)
    Else                        '编辑--保存
        '由于编辑时不允许编辑原表、新表的编号,因此用户档案不需要更新
    End If
    
    '2 更新总表表               (下面两个strSQL的差别在于 Where 从句)
    If bytCommandFlag = 0 Then  '输入--保存
        strSQL = "update MWatermeter set MWmID='" & Trim(Me.txtNewMWmID.Text) & _
                "',MWmStartReadNumber='" & Me.debNewMWmRead.Text & "' where MWmID='" & Trim(Me.txtOldMWmID.Text) & "'"
    Else                        '编辑--保存
        strSQL = "update MWatermeter set " & _
                "MWmStartReadNumber='" & Me.debNewMWmRead.Text & "' where MWmID='" & Trim(Me.txtNewMWmID.Text) & "'"
    End If
    gConnect.Execute (strSQL)
    
    '3 更新总水表更换表
    If bytCommandFlag = 0 Then  '输入--保存
        adoMWmInsteadRS.AddNew
        adoMWmInsteadRS!FixID = Trim(Me.txtFixID.Text)
    Else                        '编辑--保存
        '空操作
    End If
    With adoMWmInsteadRS
    !ReportDate = Me.dtpReportDate.value
    !ReportMan = Trim(Me.txtReportMan.Text)
    !OldMWmID = Trim(Me.txtOldMWmID.Text)
    !NewMWmID = Trim(Me.txtNewMWmID.Text)
    !OldMWmRead = Me.debOldMWmRead.Text
    !NewMWmRead = Me.debNewMWmRead.Text
    
    !OldMWmStatus = Trim(Me.txtOldMWmStatus.Text)
    !NewMWmStatus = Trim(Me.txtNewMWmStatus.Text)
    !FixDate = Me.dtpFixDate.value
    !FixMan = Trim(Me.txtFixMan.Text)
    !Ym = strYm
    .Update
    End With
    
    On Error GoTo 0
    gConnect.CommitTrans     '--------结束事务
    
    If bytCommandFlag = 0 Then  '输入--保存
        adoMWmInsteadRS.MoveLast
    End If
    SaveCurrenData = True

    Exit Function
    '-------错误处理---------
errHandleAdd:
    gConnect.RollbackTrans
    Warning "记录保存失败!" & Chr(13) & Err.Description
    On Error GoTo 0
    SaveCurrenData = False

End Function

Private Function DetectFixID(ByVal strFixID As String) As Byte
   '返回值: 0   无重复值
   '        1   有重复值
   '        2   检测过程失败
    
    Dim strSQL As String
    Dim adoTmpRS As ADODB.Recordset
    
    strSQL = "select FixID from MWaterMeterInstead where FixID='" & strFixID & "'"
    On Error GoTo ErrHandleExe
    Set adoTmpRS = gConnect.Execute(strSQL)
    On Error GoTo 0
    If adoTmpRS.EOF And adoTmpRS.BOF Then
        DetectFixID = 0
    Else
        DetectFixID = 1
    End If
    On Error Resume Next
    adoTmpRS.Close
    Set adoTmpRS = Nothing
    On Error GoTo 0
    
    Exit Function
    '-------错误处理---------
ErrHandleExe:
    On Error GoTo 0
    DetectFixID = 2
    
End Function

Private Function DetectMWmID(ByVal strMWmID As String) As Byte
   '返回值: 0   无重复值
   '        1   有重复值
   '        2   检测过程失败
    
    Dim strSQL As String
    Dim adoTmpRS As ADODB.Recordset
    
    strSQL = "select MWmID from MWatermeter where MWmID='" & strMWmID & "'"
    On Error GoTo ErrHandleExe
    Set adoTmpRS = gConnect.Execute(strSQL)
    On Error GoTo 0
    If adoTmpRS.EOF And adoTmpRS.BOF Then
        DetectMWmID = 0
    Else
        DetectMWmID = 1
    End If
    On Error Resume Next
    adoTmpRS.Close
    Set adoTmpRS = Nothing
    On Error GoTo 0
    
    Exit Function
    '-------错误处理---------
ErrHandleExe:
    On Error GoTo 0
    DetectMWmID = 2
    
End Function


Private Sub EnableCMD1()
   Dim i As Integer
   For i = 0 To cmdCommandArray1.Count - 1
        cmdCommandArray1(i).Enabled = True
   Next i
End Sub
Private Sub DisableCMD1()
   Dim i As Integer
   For i = 0 To cmdCommandArray1.Count - 1
        cmdCommandArray1(i).Enabled = False
   Next i
End Sub

Private Sub EnableCMD2()
   Dim i As Integer
   For i = 0 To cmdCommandArray2.Count - 1
        cmdCommandArray2(i).Enabled = True
   Next i
End Sub
Private Sub DisableCMD2()
   Dim i As Integer
   For i = 0 To cmdCommandArray2.Count - 1
        cmdCommandArray2(i).Enabled = False
   Next i
End Sub

Private Sub EnableCMD3()
   Dim i As Integer
   For i = 0 To cmdCommandArray3.Count - 1
        cmdCommandArray3(i).Enabled = True
   Next i
End Sub
Private Sub DisableCMD3()
   Dim i As Integer
   For i = 0 To cmdCommandArray3.Count - 1
        cmdCommandArray3(i).Enabled = False
   Next i
End Sub

Private Sub DisplayCurrentData()
    '将表中的当前数据记录显示在屏幕上
    If adoMWmInsteadRS.EOF Or adoMWmInsteadRS.BOF Then
        Call InitInterface
        Exit Sub
    End If

    Me.txtFixID.Text = adoMWmInsteadRS!FixID
    
    Me.dtpReportDate.value = adoMWmInsteadRS!ReportDate
    Me.txtReportMan.Text = Trim(adoMWmInsteadRS!ReportMan)
    
    Me.txtOldMWmID.Text = Trim(adoMWmInsteadRS!OldMWmID)
    Me.txtNewMWmID.Text = Trim(adoMWmInsteadRS!NewMWmID)
    Me.debOldMWmRead.Text = adoMWmInsteadRS!OldMWmRead
    Me.debNewMWmRead.Text = adoMWmInsteadRS!NewMWmRead
    Me.txtYear.Text = Mid(Trim(adoMWmInsteadRS!Ym), 1, 4)
    Me.cboMonth.ListIndex = Val(Mid(Trim(adoMWmInsteadRS!Ym), 5, 2)) - 1
    
    Me.txtOldMWmStatus.Text = Trim(adoMWmInsteadRS!OldMWmStatus)
    Me.txtNewMWmStatus.Text = Trim(adoMWmInsteadRS!NewMWmStatus)
    Me.txtFixMan.Text = Trim(adoMWmInsteadRS!FixMan)
    Me.dtpFixDate.value = adoMWmInsteadRS!FixDate
End Sub

Private Sub Form_Unload(Cancel As Integer)
    On Error Resume Next
    adoMWmInsteadRS.Close
    Set adoMWmInsteadRS = Nothing
    On Error GoTo 0
End Sub


'---------------------------------------------------
'控件常规事件
'---------------------------------------------------
Private Sub txtFixID_GotFocus()
    Call AutoSelectText(txtFixID)
End Sub

Private Sub txtFixID_KeyPress(KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub txtFixID_LostFocus()
    Dim bytFlag As Byte
    
    If Trim(Me.txtFixID.Text) = "" Then
        Warning "请输入维修单编号"
        Me.txtFixID.SetFocus
        Exit Sub
    End If
    
    Me.txtFixID.Text = String(gFixIDLen - Len(Trim(Me.txtFixID.Text)), "0") & Trim(Me.txtFixID.Text)
    
    bytFlag = DetectFixID(Trim(Me.txtFixID.Text))
    If bytFlag = 0 Then '无重复值
        '合法的编号,空操作
    ElseIf bytFlag = 1 Then     '有重复值
        Warning "编号输入重复,请仔细核对!!!"
        Me.txtFixID.SetFocus
    ElseIf bytFlag = 2 Then     '执行失败
        Warning "检测维修单编号过程失败!!!"
        Me.txtFixID.SetFocus
    End If
End Sub

Private Sub txtFixMan_GotFocus()
    Call AutoSelectText(Me.txtFixMan)
End Sub

Private Sub txtFixMan_KeyPress(KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub txtNewMWmID_LostFocus()
    If Trim(Me.txtNewMWmID.Text) = "" Then Exit Sub
    Me.txtNewMWmID.Text = String(gMWmIDLen - Len(Trim(Me.txtNewMWmID.Text)), "0") & Trim(Me.txtNewMWmID.Text)
        
    '检查输入的新水表编号是否有重复值
    If bytCommandFlag = 0 Then  '输入状态
        Select Case DetectMWmID(Trim(Me.txtNewMWmID.Text))
        Case 0      '没有重复
            '正常情况----空操作(程序继续)
        
        Case 1      '有重复
            Warning "输入新水表的编号已经存在!!!"
            Me.txtNewMWmID.SetFocus
        
        Case 2      '检查失败
            Warning "检查输入新水表的编号出错!!!"
            Me.txtNewMWmID.SetFocus
        
        End Select
    Else                        '编辑状态
        '由于编辑状态禁止编辑新、老水表编号,因此这儿为空操作
    End If
End Sub

Private Sub txtOldMWmID_LostFocus()
    '注意:废弃掉的程序是原来的,下面的程序是新的,新的程序主要是从新考虑了 总表更换不能修改总表编号的问题
    
    If Trim(Me.txtOldMWmID.Text) = "" Then
        Me.txtNewMWmID.Text = String(gMWmIDLen, " ")
        Exit Sub
    End If
    Me.txtOldMWmID.Text = String(gMWmIDLen - Len(Trim(Me.txtOldMWmID.Text)), "0") & Trim(Me.txtOldMWmID.Text)

    '检查输入的老水表编号是否有重复值
    If bytCommandFlag = 0 Then  '输入状态
        Select Case DetectMWmID(Trim(Me.txtOldMWmID.Text))
        Case 0      '没有重复
            Warning "输入的原总表的编号不存在!!!"
            Me.txtOldMWmID.SetFocus
            Me.txtNewMWmID.Text = String(gMWmIDLen, " ")

        Case 1      '有重复
            '正常情况----空操作(程序继续)
            Me.txtNewMWmID.Text = Trim(Me.txtOldMWmID.Text)

        Case 2      '检查失败
            Warning "检查输入原总表的编号出错!!!"
            Me.txtNewMWmID.Text = String(gMWmIDLen, " ")
            Me.txtOldMWmID.SetFocus

        End Select
    Else                        '编辑状态
        '由于编辑状态禁止编辑新、老水表编号,因此这儿为空操作
    End If


'    If Trim(Me.txtOldMWmID.Text) = "" Then Exit Sub
'    Me.txtOldMWmID.Text = String(gMWmIDLen - Len(Trim(Me.txtOldMWmID.Text)), "0") & Trim(Me.txtOldMWmID.Text)
'
'    '检查输入的老水表编号是否有重复值
'    If bytCommandFlag = 0 Then  '输入状态
'        Select Case DetectMWmID(Trim(Me.txtOldMWmID.Text))
'        Case 0      '没有重复
'            Warning "输入的原总表的编号不存在!!!"
'            Me.txtOldMWmID.SetFocus
'
'        Case 1      '有重复
'            '正常情况----空操作(程序继续)
'
'        Case 2      '检查失败
'            Warning "检查输入原总表的编号出错!!!"
'            Me.txtOldMWmID.SetFocus
'
'        End Select
'    Else                        '编辑状态
'        '由于编辑状态禁止编辑新、老水表编号,因此这儿为空操作
'    End If
End Sub

Private Sub txtNewMWmStatus_GotFocus()
    Call AutoSelectText(txtNewMWmStatus)
End Sub

Private Sub txtNewMWmStatus_KeyPress(KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub txtOldMWmStatus_GotFocus()
    Call AutoSelectText(txtOldMWmStatus)
End Sub

Private Sub txtOldMWmStatus_KeyPress(KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub txtReportMan_GotFocus()
    Call AutoSelectText(txtReportMan)
End Sub

Private Sub txtReportMan_KeyPress(KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub txtOldMWmID_GotFocus()
    Call AutoSelectText(txtOldMWmID)
End Sub

Private Sub txtOldMWmID_KeyPress(KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub txtNewMWmID_GotFocus()
    Call AutoSelectText(txtNewMWmID)
End Sub

Private Sub txtNewMWmID_KeyPress(KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub debOldMWmRead_KeyPress(ByVal KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub debNewMWmRead_KeyPress(ByVal KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub txtYear_GotFocus()
    Call AutoSelectText(txtYear)
End Sub

Private Sub txtYear_KeyPress(KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub cboMonth_KeyPress(KeyAscii As Integer)
    Call IfEnterKeyMoveNext(KeyAscii)
End Sub

Private Sub cboMonth_LostFocus()
    Dim strNextJFYm As String
    Dim strTheYm As String
    
    If Val(Me.txtYear.Text) < 1900 Or Val(Me.txtYear.Text) > 9999 Then
        Warning "年份格式错误!!!"
        Me.txtYear.SetFocus
        Exit Sub
    End If
    
    strNextJFYm = NextYm(strCurJFYm)
    strTheYm = Me.txtYear.Text & Me.cboMonth.Text
    If bytCommandFlag = 0 Then  '输入----只允许输入当前的计费月份或当前计费月份的下个计费月份
        If strTheYm < strCurJFYm Or strTheYm > strNextJFYm Then
            Warning "所属计费年月输入错误"
            Me.txtYear.SetFocus
        End If
    Else                        '编辑----只要输入的不大于当前计费月份的下个计费月份就合法
        If strTheYm > strNextJFYm Then
            Warning "所属计费年月输入错误"
            Me.txtYear.SetFocus
        End If
    End If
End Sub

Private Sub txtYear_LostFocus()
    Me.cboMonth.SetFocus
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -