📄 form29.frm
字号:
'移动rs_power记录到第一条
rs_power.MoveFirst
'如果已经是第一条记录,则提示用户
If rs_power.BOF = True Then
MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是,则个数据表的记录位置移到第一条记录,并且显示之
Else
For i = 0 To 13
If IsNull(rs_power.Fields(i)) = True Then
Text1(i + 14).Text = ""
Else
Text1(i + 14).Text = rs_power.Fields(i)
End If
Next i
End If
ElseIf SSTab1.Tab = 2 Then
'移动rs_gas记录到第一条
rs_gas.MoveFirst
'如果已经是第一条记录,则提示用户
If rs_gas.BOF = True Then
MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是,则个数据表的记录位置移到第一条记录,并且显示之
Else
For i = 0 To 13
If IsNull(rs_gas.Fields(i)) = True Then
Text1(i + 28).Text = ""
Else
Text1(i + 28).Text = rs_gas.Fields(i)
End If
Next i
End If
End If
End Sub
Private Sub cmdl_Click()
cmdf.Enabled = True
cmdp.Enabled = True
cmdn.Enabled = False
cmdl.Enabled = False
If SSTab1.Tab = 0 Then
'移动rs_water记录到最后一条
rs_water.MoveLast
'如果已经是最后一条记录,则提示用户
If rs_water.EOF = 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
'移动rs_power记录到最后一条
rs_power.MoveLast
'如果已经是最后一条记录,则提示用户
If rs_power.EOF = True Then
MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是最后一条,则个数据表的记录位置移到后一条记录,并且显示之
Else
For i = 0 To 13
If IsNull(rs_power.Fields(i)) = True Then
Text1(i + 14).Text = ""
Else
Text1(i + 14).Text = rs_power.Fields(i)
End If
Next i
End If
ElseIf SSTab1.Tab = 2 Then
'移动rs_gas记录到最后一条
rs_gas.MoveLast
'如果已经是最后一条记录,则提示用户
If rs_gas.EOF = True Then
MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是最后一条,则个数据表的记录位置移到后一条记录,并且显示之
Else
For i = 0 To 13
If IsNull(rs_gas.Fields(i)) = True Then
Text1(i + 28).Text = ""
Else
Text1(i + 28).Text = rs_gas.Fields(i)
End If
Next i
End If
End If
End Sub
Private Sub cmdn_Click()
'设置前一条和第一条按钮可用
cmdp.Enabled = True
cmdf.Enabled = True
If SSTab1.Tab = 0 Then
'先移动rs_water记录到后一条
rs_water.MoveNext
'如果已经是最后一条记录,则提示用户
If rs_water.EOF = True Then
MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
'并且设置“后一条”和最后一条按钮不可用
cmdn.Enabled = False
cmdl.Enabled = False
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
'先移动rs_power记录到后一条
rs_power.MoveNext
'如果已经是最后一条记录,则提示用户
If rs_power.EOF = True Then
MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
'并且设置“后一条”和最后一条按钮不可用
cmdn.Enabled = False
cmdl.Enabled = False
Exit Sub
'如果不是,则个数据表的记录位置移到后一条记录,并且显示之
Else
For i = 0 To 13
If IsNull(rs_power.Fields(i)) = True Then
Text1(i + 14).Text = ""
Else
Text1(i + 14).Text = rs_power.Fields(i)
End If
Next i
End If
ElseIf SSTab1.Tab = 2 Then
'先移动rs_gas记录到后一条
rs_gas.MoveNext
'如果已经是最后一条记录,则提示用户
If rs_gas.EOF = True Then
MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
'并且设置“后一条”和最后一条按钮不可用
cmdn.Enabled = False
cmdl.Enabled = False
Exit Sub
'如果不是,则个数据表的记录位置移到后一条记录,并且显示之
Else
For i = 0 To 13
If IsNull(rs_gas.Fields(i)) = True Then
Text1(i + 28).Text = ""
Else
Text1(i + 28).Text = rs_gas.Fields(i)
End If
Next i
End If
End If
End Sub
Private Sub cmdp_Click()
'设置后一条和最后一条按钮可用
cmdn.Enabled = True
cmdl.Enabled = True
If SSTab1.Tab = 0 Then
'先移动rs_water记录到前一条
rs_water.MovePrevious
'如果已经是第一条记录,则提示用户
If rs_water.BOF = True Then
MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
'并且设置“前一条”和第一条按钮不可用
cmdp.Enabled = False
cmdf.Enabled = False
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
'先移动rs_power记录到前一条
rs_power.MovePrevious
'如果已经是第一条记录,则提示用户
If rs_power.BOF = True Then
MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
'并且设置“前一条”和第一条按钮不可用
cmdp.Enabled = False
cmdf.Enabled = False
Exit Sub
'如果不是,则个数据表的记录位置移到前一条记录,并且显示之
Else
For i = 0 To 13
If IsNull(rs_power.Fields(i)) = True Then
Text1(i + 14).Text = ""
Else
Text1(i + 14).Text = rs_power.Fields(i)
End If
Next i
End If
ElseIf SSTab1.Tab = 2 Then
'先移动rs_gas记录到前一条
rs_gas.MovePrevious
'如果已经是第一条记录,则提示用户
If rs_gas.BOF = True Then
MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
'并且设置“前一条”和第一条按钮不可用
cmdp.Enabled = False
cmdf.Enabled = False
Exit Sub
'如果不是,则个数据表的记录位置移到前一条记录,并且显示之
Else
For i = 0 To 13
If IsNull(rs_gas.Fields(i)) = True Then
Text1(i + 28).Text = ""
Else
Text1(i + 28).Text = rs_gas.Fields(i)
End If
Next i
End If
End If
End Sub
Private Sub cmdq_Click()
frmqyibiao.Show
End Sub
Private Sub cmdSave_Click()
'使用 k 变量简化代码
If SSTab1.Tab = 0 Then
k = 0
ElseIf SSTab1.Tab = 1 Then
k = 14
ElseIf SSTab1.Tab = 2 Then
k = 28
End If
'设置本月抄表日期和本月交费日期为当前日期
Text1(11 + k).Text = Date
Text1(12 + k).Text = Date
'检测数据是否完整
If Text1(0 + k).Text = "" Then
MsgBox "仪表编号不可为空!", vbOKOnly + vbInformation, "注意"
Text1(0 + k).SetFocus
Exit Sub
ElseIf Text1(1 + k).Text = "" Then
MsgBox "住户姓名不可为空!", vbOKOnly + vbInformation, "注意"
Text1(1 + k).SetFocus
Exit Sub
ElseIf Not (Val(Text1(3 + k).Text) < 3000 And Val(Text1(3 + k).Text) > 1900) Then
MsgBox "年份输入不正确!", vbOKOnly + vbInformation, "注意"
Text1(3 + k).SetFocus
Exit Sub
ElseIf Not (Val(Text1(4 + k).Text) >= 1 And Val(Text1(4 + k).Text) <= 12) Then
MsgBox "月份书写不对,应为1-12的数字!", vbOKOnly + vbInformation, "注意"
Text1(4 + k).SetFocus
Exit Sub
ElseIf IsNumeric(Text1(5 + k).Text) = False Then
MsgBox "上月数据必须为数字!", vbOKOnly + vbInformation, "注意"
Text1(5 + k).SetFocus
Exit Sub
ElseIf IsNumeric(Text1(6 + k).Text) = False Then
MsgBox "本月数据必须为数字!", vbOKOnly + vbInformation, "注意"
Text1(6 + k).SetFocus
Exit Sub
ElseIf IsNumeric(Text1(8 + k).Text) = False Then
MsgBox "本月费用必须为数字!", vbOKOnly + vbInformation, "注意"
Text1(8 + k).SetFocus
Exit Sub
ElseIf IsDate(Text1(10 + k).Text) = False Then
MsgBox "上月抄表日期必须为这样的日期格式2003-7-25!", vbOKOnly + vbInformation, "注意"
Text1(10 + k).SetFocus
Exit Sub
ElseIf IsDate(Text1(11 + k).Text) = False Then
MsgBox "本月抄表日期必须为这样的日期格式2003-7-25!", vbOKOnly + vbInformation, "注意"
Text1(11 + k).SetFocus
Exit Sub
ElseIf IsDate(Text1(12 + k).Text) = False Then
MsgBox "本月交费日期必须为这样的日期格式2003-7-25!", vbOKOnly + vbInformation, "注意"
Text1(12 + k).SetFocus
Exit Sub
End If
'本月用量和本月费用通过计算得到
Text1(7 + k).Text = Val(Text1(6 + k).Text) - Val(Text1(5 + k).Text)
Text1(9 + k).Text = Val(Text1(7 + k).Text) * Val(Text1(8 + k).Text)
'3个选项卡的保存代码
If SSTab1.Tab = 0 Then
'添加数据后保存
If addw = 1 Then
'检测房间编号这个主键是否已经在表中存在
Dim rs_wcheck As New ADODB.Recordset
Dim sqlwCheck As String
sqlwCheck = "select * from sbzl where 仪表编号= '" & (Text1(0 + k).Text) & "'"
Set rs_wcheck = ExecuteSQL(sqlwCheck, MsgText)
If Not rs_wcheck.EOF And Not rs_wcheck.BOF Then
MsgBox "该仪表编号已经存在,请重填一个!", vbOKOnly + vbInformation, "注意"
rs_wcheck.Close
Text1(0 + k).SetFocus
Text1(0 + k).Text = ""
Exit Sub
End If
rs_wcheck.Close
'主键不重复,可以加入表中
rs_water.AddNew
For i = 0 To 13
rs_water.Fields(i) = Text1(i + k).Text
Next i
rs_water.Update
'添加之后显示总共条数信息加 1
Text2.Text = Val(Text2.Text) + 1
'修改数据后的保存
Else
rs_water.Delete
rs_water.AddNew
For i = 0 To 13
rs_water.Fields(i) = Text1(i).Text
Next i
rs_water.Update
End If
ElseIf SSTab1.Tab = 1 Then
'添加数据后保存
If addp = 1 Then
'检测房间编号这个主键是否已经在表中存在
Dim rs_pcheck As New ADODB.Recordset
Dim sqlpcheck As String
sqlpcheck = "select * from dbzl where 仪表编号= '" & (Text1(0 + k).Text) & "'"
Set rs_pcheck = ExecuteSQL(sqlpcheck, MsgText)
If Not rs_pcheck.EOF And Not rs_pcheck.BOF Then
MsgBox "该仪表编号已经存在,请重填一个!", vbOKOnly + vbInformation, "注意"
rs_pcheck.Close
Text1(0 + k).SetFocus
Text1(0 + k).Text = ""
Exit Sub
End If
rs_pcheck.Close
'主键不重复,可以加入表中
rs_power.AddNew
For i = 0 To 13
rs_power.Fields(i) = Text1(i + k).Text
Next i
rs_power.Update
'添加之后显示总共条数信息加 1
Text2.Text = Val(Text2.Text) + 1
'修改数据后的保存
Else
rs_power.Delete
rs_power.AddNew
For i = 0 To 13
rs_power.Fields(i) = Text1(i + 14).Text
Next i
rs_power.Update
End If
ElseIf SSTab1.Tab = 2 Then
'添加数据后保存
If addg = 1 Then
'检测房间编号这个主键是否已经在表中存在
Dim rs_gcheck As New ADODB.Recordset
Dim sqlgcheck As String
sqlgcheck = "select * from qbzl where 仪表编号= '" & (Text1(0 + k).Text) & "'"
S
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -