📄 form29.frm
字号:
Begin VB.Label Label1
BackColor = &H80000000&
Caption = "上月数据"
ForeColor = &H00000000&
Height = 255
Index = 36
Left = 3600
TabIndex = 40
Top = 1200
Width = 735
End
Begin VB.Label Label1
BackColor = &H80000000&
Caption = "月份"
ForeColor = &H00000000&
Height = 255
Index = 37
Left = 2160
TabIndex = 39
Top = 1200
Width = 495
End
Begin VB.Label Label1
BackColor = &H80000000&
Caption = "年份"
ForeColor = &H00000000&
Height = 255
Index = 38
Left = 240
TabIndex = 38
Top = 1200
Width = 495
End
Begin VB.Label Label1
BackColor = &H80000000&
Caption = "物业地址"
ForeColor = &H00000000&
Height = 255
Index = 39
Left = 4920
TabIndex = 37
Top = 600
Width = 735
End
Begin VB.Label Label1
BackColor = &H80000000&
Caption = "住户姓名"
ForeColor = &H00000000&
Height = 255
Index = 40
Left = 2400
TabIndex = 36
Top = 600
Width = 735
End
Begin VB.Label Label1
BackColor = &H80000000&
Caption = "仪表编号"
ForeColor = &H00000000&
Height = 255
Index = 41
Left = 120
TabIndex = 35
Top = 600
Width = 735
End
End
End
End
Attribute VB_Name = "frmC2"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'定义一套用于水表选项卡的变量
Dim rs_water As New ADODB.Recordset
Dim rs_wcount As New ADODB.Recordset
Dim sqlw As String
Dim sqlwcount As String
Dim MsgText As String
'定义一套用于电表选项卡的变量
Dim rs_power As New ADODB.Recordset
Dim rs_pcount As New ADODB.Recordset
Dim sqlp As String
Dim sqlpcount As String
'定义一套用于气表选项卡的变量
Dim rs_gas As New ADODB.Recordset
Dim rs_gcount As New ADODB.Recordset
Dim sqlg As String
Dim sqlgcount As String
'设置3个变量用于分别判断水、电、气表保存时是从添加还是修改后保存
Dim addw
Dim addp
Dim addg
'定义一个k变量用于各选项卡上text控件系数的表示,使用它可以简化过程
Dim k As Integer
Private Sub cmdAdd_Click()
'设置除保存和取消按钮外的其他按钮不可用
cmdadd.Enabled = False
cmdedit.Enabled = False
cmddel.Enabled = False
cmdsave.Enabled = True
cmdcancel.Enabled = True
cmdf.Enabled = False
cmdp.Enabled = False
cmdn.Enabled = False
cmdl.Enabled = False
cmdq.Enabled = False
'使用k变量简化代码
If SSTab1.Tab = 0 Then
k = 0
addw = 1
ElseIf SSTab1.Tab = 1 Then
k = 14
addp = 1
ElseIf SSTab1.Tab = 2 Then
k = 28
addg = 1
End If
'需要清空所有text框,并且设置它们可写
For i = 0 To 13
Text1(i + k).Text = ""
Text1(i + k).Enabled = True
Next i
'本月用量和本月费用text 框的值通过计算得到,因此需要设置它们不可写
Text1(7 + k).Enabled = False
Text1(9 + k).Enabled = False
Text1(0 + k).SetFocus
'设置本月抄表日期和本月交费日期为当前日期,但还可以更改
Text1(11 + k).Text = Date
Text1(12 + k).Text = Date
End Sub
Private Sub cmdCancel_Click()
'取消按钮用于用户添加或修改过程中放弃添加或修改操作
cmdsave.Enabled = False
cmdcancel.Enabled = False
cmdadd.Enabled = True
cmdedit.Enabled = True
cmddel.Enabled = True
cmdf.Enabled = True
cmdp.Enabled = True
cmdn.Enabled = True
cmdl.Enabled = True
cmdq.Enabled = True
'如果是从添加后取消
If SSTab1.Tab = 0 Then
k = 0
If addw = 1 Then
'如果当前表中有数据则显示第一条数据
If Not rs_water.EOF And Not rs_water.BOF Then
For i = 0 To 13
Text1(i + k).Text = rs_water.Fields(i)
Next i
'如果没有数据,则显示空
Else
For i = 0 To 13
Text1(i + k).Text = ""
Next i
End If
'如果是修改后取消,则恢复到修改前的数据
ElseIf addw = 0 Then
For i = 0 To 13
Text1(i + k).Text = rs_water.Fields(i)
Next i
End If
ElseIf SSTab1.Tab = 1 Then
k = 14
If addp = 1 Then
'如果当前表中有数据则显示第一条数据
If Not rs_water.EOF And Not rs_water.BOF Then
For i = 0 To 13
Text1(i + k).Text = rs_water.Fields(i)
Next i
'如果没有数据,则显示空
Else
For i = 0 To 13
Text1(i + k).Text = ""
Next i
End If
'如果是修改后取消,则恢复到修改前的数据
ElseIf addp = 0 Then
For i = 0 To 13
Text1(i + k).Text = rs_water.Fields(i)
Next i
End If
ElseIf SSTab1.Tab = 28 Then
k = 28
If addg = 1 Then
'如果当前表中有数据则显示第一条数据
If Not rs_water.EOF And Not rs_water.BOF Then
For i = 0 To 13
Text1(i + k).Text = rs_water.Fields(i)
Next i
'如果没有数据,则显示空
Else
For i = 0 To 13
Text1(i + k).Text = ""
Next i
End If
'如果是修改后取消,则恢复到修改前的数据
ElseIf addg = 0 Then
For i = 0 To 13
Text1(i + k).Text = rs_water.Fields(i)
Next i
End If
End If
'设置各个text框不可写
For i = 0 To 13
Text1(i + k).Enabled = False
Next i
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
Private Sub cmdDel_Click()
'当单击删除记录时,需要弹出一个提示框,警告用户
Dim answer As String
answer = MsgBox("确定要删除吗?", vbYesNo, "注意")
'确实删除
If answer = vbYes Then
rs_water.Delete '删除当前记录
rs_water.Update '更新删除
MsgBox "成功删除!", vbOKOnly + vbExclamation, "注意"
Else
Exit Sub
End If
'删除之后,显示总信息条数需要减 1
Text2.Text = Val(Text2.Text) - 1
'删除当前记录后,需要显示下一条记录,如果删除的是最后一条记录,则显示上一条记录
If SSTab1.Tab = 0 Then
'先移动rs_water记录到后一条
rs_water.MoveNext
If rs_water.EOF Then
rs_water.MovePrevious
'如果没有到记录首则显示该记录
If Not rs_water.BOF Then
For i = 0 To 13
Text1(i).Text = rs_water.Fields(i)
Next i
'如果到记录首,则表格已经为空,置所有text框显示为空
ElseIf rs_water.BOF Then
For i = 0 To 13
Text1(i).Text = ""
Next i
End If
'如果删除的不是首尾记录,则显示当前记录即可
Else
For i = 0 To 13
Text1(i).Text = rs_water.Fields(i)
Next i
End If
ElseIf SSTab1.Tab = 1 Then
'先移动rs_power记录到后一条
rs_power.MoveNext
If rs_power.EOF Then
rs_power.MovePrevious
'如果没有到记录首则显示该记录
If Not rs_power.BOF Then
For i = 14 To 27
Text1(i).Text = rs_power.Fields(i - 14)
Next i
'如果到记录首,则表格已经为空,置所有text框显示为空
ElseIf rs_power.BOF Then
For i = 14 To 27
Text1(i).Text = ""
Next i
End If
'如果删除的不是首尾记录,则显示当前记录即可
Else
For i = 14 To 27
Text1(i).Text = rs_power.Fields(i - 14)
Next i
End If
ElseIf SSTab1.Tab = 2 Then
'先移动rs_gas记录到后一条
rs_gas.MoveNext
If rs_gas.EOF Then
rs_gas.MovePrevious
'如果没有到记录首则显示该记录
If Not rs_gas.BOF Then
For i = 28 To 41
Text1(i).Text = rs_gas.Fields(i - 28)
Next i
'如果到记录首,则表格已经为空,置所有text框显示为空
ElseIf rs_gas.BOF Then
For i = 28 To 41
Text1(i).Text = ""
Next i
End If
'如果删除的不是首尾记录,则显示当前记录即可
Else
For i = 28 To 41
Text1(i).Text = rs_gas.Fields(i - 28)
Next i
End If
End If
End Sub
Private Sub cmdEdit_Click()
'设置除保存和取消按钮外的其他按钮不可用
cmdadd.Enabled = False
cmdedit.Enabled = False
cmddel.Enabled = False
cmdsave.Enabled = True
cmdcancel.Enabled = True
cmdf.Enabled = False
cmdp.Enabled = False
cmdn.Enabled = False
cmdl.Enabled = False
cmdq.Enabled = False
'需要设置除主键和本月用量、本月费用text 框之外的text框可写
If SSTab1.Tab = 0 Then
For i = 1 To 13
Text1(i).Enabled = True
Next i
Text1(7).Enabled = False
Text1(9).Enabled = False
'设置addw变量为0
addw = 0
ElseIf SSTab1.Tab = 1 Then
For i = 15 To 27
Text1(i).Enabled = True
Next i
Text1(21).Enabled = False
Text1(23).Enabled = False
'设置addp变量为0
addp = 0
ElseIf SSTab1.Tab = 2 Then
For i = 29 To 41
Text1(i).Enabled = True
Next i
Text1(35).Enabled = False
Text1(37).Enabled = False
'设置addg变量为0
addg = 0
End If
End Sub
Private Sub cmdf_Click()
'需要设置相应按钮为不可用和不可用
cmdp.Enabled = False
cmdf.Enabled = False
cmdn.Enabled = True
cmdl.Enabled = True
If SSTab1.Tab = 0 Then
'移动rs_water记录到第一条
rs_water.MoveFirst
'如果已经是第一条记录,则提示用户
If rs_water.BOF = True Then
MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是,则个数据表的记录位置移到第一条记录,并且显示之
Else
For i = 0 To 13
If IsNull(rs_water.Fields(i)) = True Then
Text1(i).Text = ""
Else
Text1(i).Text = rs_water.Fields(i)
End If
Next i
End If
ElseIf SSTab1.Tab = 1 Then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -