📄 frmmainwatermeterinsteadinput.frm
字号:
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 + -