📄 frmclient.frm
字号:
End
Begin VB.Label Label1
Caption = "房 型"
Height = 255
Index = 6
Left = 240
TabIndex = 21
Top = 1200
Width = 855
End
Begin VB.Label Label1
Caption = "建筑面积"
Height = 255
Index = 5
Left = 2760
TabIndex = 20
Top = 1215
Width = 975
End
Begin VB.Label Label1
Caption = "籍 贯"
Height = 255
Index = 4
Left = 4800
TabIndex = 19
Top = 1800
Width = 615
End
Begin VB.Label Label1
Caption = "性 别 "
Height = 255
Index = 3
Left = 2760
TabIndex = 15
Top = 1815
Width = 975
End
Begin VB.Label Label1
Caption = "业主姓名"
Height = 255
Index = 2
Left = 240
TabIndex = 14
Top = 1800
Width = 855
End
Begin VB.Label Label1
Caption = "物业地址"
Height = 255
Index = 1
Left = 2760
TabIndex = 12
Top = 615
Width = 855
End
Begin VB.Label Label1
Caption = "住户编号"
Height = 255
Index = 0
Left = 240
TabIndex = 11
Top = 600
Width = 855
End
End
End
Attribute VB_Name = "frmClient"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim rs_client As New ADODB.Recordset
Dim rs_count As New ADODB.Recordset
'设置一个add变量用于保存时判断是从添加还是修改后保存
Dim add
'定义rs_wuye、rs_water,rs_power,rs_gas为显示该住户物业资料和仪表资料的记录集
Dim rs_wuye As New ADODB.Recordset
Dim rs_water As New ADODB.Recordset
Dim rs_power As New ADODB.Recordset
Dim rs_gas As New ADODB.Recordset
Private Sub cmdAdd_Click()
'设置除保存和取消按钮外的其他按钮不可用
cmdAdd.Enabled = False
cmdEdit.Enabled = False
cmdDel.Enabled = False
cmdSave.Enabled = True
cmdCancel.Enabled = True
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
cmdQuery.Enabled = False
'需要清空所有text框,并且设置它们可写
For i = 0 To 14
Text1(i).Text = ""
Text1(i).Enabled = True
Next i
Combo1.Enabled = True
'add变量用于保存时判断是从添加还是修改后保存
add = 1
Text1(0).SetFocus
Text1(13).Text = Date
End Sub
Private Sub cmdCancel_Click()
'取消按钮用于用户添加或修改过程中放弃添加或修改操作
cmdSave.Enabled = False
cmdCancel.Enabled = False
cmdAdd.Enabled = True
cmdEdit.Enabled = True
cmdDel.Enabled = True
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdQuery.Enabled = True
If add = 1 Then
Dim sql_client As String
'如果当前client表中有数据则显示第一条数据
If Not rs_client.EOF And Not rs_client.BOF Then
For i = 0 To 14
Text1(i).Text = rs_client.Fields(i)
Next i
If rs_client.Fields(15) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
'如果没有数据,则显示空
Else
For i = 0 To 14
Text1(i).Text = ""
Next i
End If
ElseIf add = 0 Then
For i = 0 To 14
Text1(i).Text = rs_client.Fields(i)
Next i
If rs_client.Fields(15) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
End If
'开始时设置各个text框不可写
For i = 0 To 14
Text1(i).Enabled = False
Next i
'先设置ComboBox的默认值及不可改
Combo1.Enabled = False
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_client.Delete '删除当前记录
rs_client.Update '更新删除
MsgBox "成功删除!", vbOKOnly + vbExclamation, ""
Else
Exit Sub
End If
'删除之后,显示总信息条数需要减 1
Text2.Text = Val(Text2.Text) - 1
'删除当前记录后,需要显示下一条记录,如果删除的是最后一条记录,则显示上一条记录
'先移动rs_client记录到后一条
rs_client.MoveNext
If rs_client.EOF Then
rs_client.MovePrevious
'如果没有到记录首则显示改记录
If Not rs_client.BOF Then
For i = 0 To 14
Text1(i).Text = rs_client.Fields(i)
Next i
If rs_client.Fields(15) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
'如果到记录首,则表格已经为空,置所有text框显示为空
ElseIf rs_client.BOF Then
For i = 0 To 14
Text1(i).Text = ""
Next i
End If
'如果删除的不是首尾记录,则显示当前记录即可
Else
For i = 0 To 14
Text1(i).Text = rs_client.Fields(i)
Next i
If rs_client.Fields(15) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
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
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
cmdQuery.Enabled = False
'需要设置除主键之外的text框可写
For i = 1 To 14
Text1(i).Enabled = True
Next i
Combo1.Enabled = True
add = 0
End Sub
Private Sub cmdFirst_Click()
'先移动rs_client记录到第一条
rs_client.MoveFirst
'同时需要设置相应按钮为不可用和不可用
cmdPrev.Enabled = False
cmdFirst.Enabled = False
cmdNext.Enabled = True
cmdLast.Enabled = True
'如果已经是第一条记录,则提示用户
If rs_client.BOF = True Then
MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是,则个数据表的记录位置移到第一条记录,并且显示之
Else
For i = 0 To 14
Text1(i).Text = rs_client.Fields(i)
Next i
If rs_client.Fields(15) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
End If
End Sub
Private Sub cmdLast_Click()
'移动rs_client记录到最后一条
rs_client.MoveLast
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = False
cmdLast.Enabled = False
'如果已经是最后一条记录,则提示用户
If rs_client.EOF = True Then
MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
Exit Sub
'如果不是最后一条,则个数据表的记录位置移到后一条记录,并且显示之
Else
For i = 0 To 14
Text1(i).Text = rs_client.Fields(i)
Next i
If rs_client.Fields(15) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
End If
End Sub
Private Sub cmdNext_Click()
'先移动rs_client记录到后一条
rs_client.MoveNext
'设置前一条和第一条按钮可用
cmdPrev.Enabled = True
cmdFirst.Enabled = True
'如果已经是最后一条记录,则提示用户
If rs_client.EOF = True Then
MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
'并且设置“后一条”和最后一条按钮不可用
cmdNext.Enabled = False
cmdLast.Enabled = False
Exit Sub
'如果不是,则个数据表的记录位置移到后一条记录,并且显示之
Else
For i = 0 To 14
Text1(i).Text = rs_client.Fields(i)
Next i
If rs_client.Fields(15) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
End If
End Sub
Private Sub cmdPrev_Click()
'先移动rs_client记录到前一条
rs_client.MovePrevious
'设置后一条和最后一条按钮可用
cmdNext.Enabled = True
cmdLast.Enabled = True
'如果已经是第一条记录,则提示用户
If rs_client.BOF = True Then
MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
'并且设置“前一条”和第一条按钮不可用
cmdPrev.Enabled = False
cmdFirst.Enabled = False
Exit Sub
'如果不是,则个数据表的记录位置移到前一条记录,并且显示之
Else
For i = 0 To 14
Text1(i).Text = rs_client.Fields(i)
Next i
If rs_client.Fields(15) = "男" Then
Combo1.ListIndex = 0
Else
Combo1.ListIndex = 1
End If
End If
End Sub
Private Sub cmdQuery_Click()
frmQueryClient.Show
End Sub
Private Sub cmdSave_Click()
'检测数据是否完整
If Text1(0).Text = "" Then
MsgBox "住户编号不可为空!", vbOKOnly + vbInformation, "注意"
Text1(0).SetFocus
Exit Sub
ElseIf Text1(1).Text = "" Then
MsgBox "物业地址不可为空!", vbOKOnly + vbInformation, "注意"
Text1(1).SetFocus
Exit Sub
ElseIf Text1(3).Text = "" Or IsNumeric(Text1(3).Text) = False Then
MsgBox "建筑面积应为数字!", vbOKOnly + vbInformation, "注意"
Text1(3).SetFocus
Exit Sub
ElseIf Text1(4).Text = "" Or IsNumeric(Text1(4).Text) = False Then
MsgBox "使用面积应为数字!", vbOKOnly + vbInformation, "注意"
Text1(4).SetFocus
Exit Sub
ElseIf Text1(5).Text = "" Then
MsgBox "业主姓名不可为空!", vbOKOnly + vbInformation, "注意"
Text1(5).SetFocus
Exit Sub
ElseIf IsDate(Text1(13).Text) = False Then
MsgBox "入住日期书写不对,应为2000-1-1这样的格式!", vbOKOnly + vbInformation, "注意"
Text1(13).SetFocus
Exit Sub
ElseIf Not Text1(14).Text = "" And IsDate(Text1(14).Text) = False Then
MsgBox "迁出时间应为空或2000-1-1这样的格式!", vbOKOnly + vbInformation, "注意"
Text1(14).SetFocus
Exit Sub
End If
'添加数据后保存
If add = 1 Then
'检测住户编号这个主键是否已经在表中存在
Dim rs_check As New ADODB.Recordset
Dim sqlCheck As String
sqlCheck = "select * from Client where 住户编号= '" & (Text1(0).Text) & "'"
rs_check.Open sqlCheck, conn, adOpenStatic, adLockOptimistic
If Not rs_check.EOF And Not rs_check.BOF Then
MsgBox "该住户编号已经存在,请重填一个!", vbOKOnly + vbInformation, "注意"
rs_check.Close
Text1(0).SetFocus
Text1(0).Text = ""
Exit Sub
End If
rs_check.Close
'主键不重复,可以加入表中
rs_client.AddNew
For i = 0 To 14
rs_client.Fields(i) = Text1(i).Text
Next i
rs_client.Fields(15) = Combo1.Text
rs_client.Update
'添加保存之后,显示总信息条数需要加1
Text2.Text = Val(Text2.Text) - 1
'修改数据后的保存
Else
rs_client.Update
End If
MsgBox "保存数据成功!", vbOKOnly + vbInformation, "祝贺"
'保存后需要设置其他按钮可用,以及各个text框不可写
cmdAdd.Enabled = True
cmdEdit.Enabled = True
cmdDel.Enabled = True
cmdSave.Enabled = False
cmdCancel.Enabled = False
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdQuery.Enabled = True
For i = 0 To 14
Text1(i).Enabled = False
Next i
Combo1.Enabled = False
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -