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

📄 frmqzclient.frm

📁 本课题为实践课题
💻 FRM
📖 第 1 页 / 共 2 页
字号:
         Text1(i).Text = ""
      Next i
      cmdEdit.Enabled = False
      cmdDel.Enabled = False
      cmdFirst.Enabled = False
      cmdPrev.Enabled = False
      cmdNext.Enabled = False
      cmdLast.Enabled = False
      cmdYuDing.Enabled = False
   End If
   
 '如果是修改后取消,则恢复到修改前的数据
 ElseIf add = 0 Then
      For i = 0 To 9
         Text1(i).Text = rs_qzclient.Fields(i)
      Next i
 End If
   '设置各个text框不可写
   For i = 0 To 9
      Text1(i).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_qzclient.Delete  '删除当前记录
      rs_qzclient.Update  '更新删除
      MsgBox "成功删除!", vbOKOnly + vbExclamation, ""
   Else
       Exit Sub
   End If
   '删除之后,显示总信息条数需要减 1
   Text2.Text = Val(Text2.Text) - 1
   '删除当前记录后,需要显示下一条记录,如果删除的是最后一条记录,则显示上一条记录
   '先移动rs_qzclient记录到后一条
   rs_qzclient.MoveNext
   If rs_qzclient.EOF Then
      rs_qzclient.MovePrevious
    '如果没有到记录首则显示该记录
    If Not rs_qzclient.BOF Then
      For i = 0 To 9
         Text1(i).Text = rs_qzclient.Fields(i)
      Next i
     '如果到记录首,则表格已经为空,置所有text框显示为空,设置前后翻滚按钮为不可用
    ElseIf rs_qzclient.BOF Then
      MsgBox "当前表格已为空!", vbOKOnly + vbInformation, "注意"
      For i = 0 To 9
         Text1(i).Text = ""
      Next i
      cmdFirst.Enabled = False
      cmdPrev.Enabled = False
      cmdNext.Enabled = False
      cmdLast.Enabled = False
      cmdDel.Enabled = False
      cmdEdit.Enabled = False
      cmdSave.Enabled = False
      cmdYuDing.Enabled = False
    End If
   '如果删除的不是首尾记录,则显示当前记录即可
   Else
      For i = 0 To 9
         Text1(i).Text = rs_qzclient.Fields(i)
      Next i
      
   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
   '设置修改状态时,下定金预定按钮不可用
   cmdYuDing.Enabled = False
   '需要设置除主键之外的text框可写
   For i = 1 To 9
      Text1(i).Enabled = True
   Next i
   
   add = 0
End Sub

Private Sub cmdFirst_Click()
   '先移动rs_qzclient记录到第一条
   rs_qzclient.MoveFirst
   '同时需要设置相应按钮为不可用和不可用
   cmdPrev.Enabled = False
   cmdFirst.Enabled = False
   cmdNext.Enabled = True
   cmdLast.Enabled = True
   '如果已经是第一条记录,则提示用户
   If rs_qzclient.BOF = True Then
      MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
      Exit Sub
   '如果不是,则个数据表的记录位置移到第一条记录,并且显示之
   Else
      For i = 0 To 9
         Text1(i).Text = rs_qzclient.Fields(i)
      Next i
      
   End If
End Sub

Private Sub cmdLast_Click()
   '移动rs_qzclient记录到最后一条
   rs_qzclient.MoveLast
   cmdFirst.Enabled = True
   cmdPrev.Enabled = True
   cmdNext.Enabled = False
   cmdLast.Enabled = False
    '如果已经是最后一条记录,则提示用户
   If rs_qzclient.EOF = True Then
      MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
      Exit Sub
   '如果不是最后一条,则个数据表的记录位置移到后一条记录,并且显示之
   Else
      For i = 0 To 9
         Text1(i).Text = rs_qzclient.Fields(i)
      Next i
      
   End If
End Sub

Private Sub cmdNext_Click()
   '先移动rs_qzclient记录到后一条
   rs_qzclient.MoveNext
   '设置前一条和第一条按钮可用
   cmdPrev.Enabled = True
   cmdFirst.Enabled = True
   '如果已经是最后一条记录,则提示用户
   If rs_qzclient.EOF = True Then
      MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
      '并且设置“后一条”和最后一条按钮不可用
      cmdNext.Enabled = False
      cmdLast.Enabled = False
      Exit Sub
   '如果不是,则个数据表的记录位置移到后一条记录,并且显示之
   Else
      For i = 0 To 9
         Text1(i).Text = rs_qzclient.Fields(i)
      Next i
      
   End If
End Sub

Private Sub cmdPrev_Click()
   '先移动rs_qzclient记录到前一条
   rs_qzclient.MovePrevious
   '设置后一条和最后一条按钮可用
   cmdNext.Enabled = True
   cmdLast.Enabled = True
   '如果已经是第一条记录,则提示用户
   If rs_qzclient.BOF = True Then
      MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
      '并且设置“前一条”和第一条按钮不可用
      cmdPrev.Enabled = False
      cmdFirst.Enabled = False
      Exit Sub
   '如果不是,则个数据表的记录位置移到前一条记录,并且显示之
   Else
      For i = 0 To 9
         Text1(i).Text = rs_qzclient.Fields(i)
      Next i
      
   End If
End Sub

Private Sub cmdQuery_Click()
   frmQueryQZC.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(2).Text = "" Then
         MsgBox "求租客户电话不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(2).SetFocus
         Exit Sub
      ElseIf Not Text1(4).Text = "" And IsNumeric(Text1(4).Text) = False Then
         MsgBox "面积要求不为空则应为数字!", vbOKOnly + vbInformation, "注意"
         Text1(4).SetFocus
         Exit Sub
      ElseIf Not Text1(6).Text = "" And IsNumeric(Text1(6).Text) = False Then
         MsgBox "意向价位不为空则应为数字!", vbOKOnly + vbInformation, "注意"
         Text1(6).SetFocus
         Exit Sub
      ElseIf Not Text1(7).Text = "" And IsNumeric(Text1(7).Text) = False Then
         MsgBox "意向租期不为空则应为数字!", vbOKOnly + vbInformation, "注意"
         Text1(7).SetFocus
         Exit Sub
      End If
   '如果意向房屋编号不为空,需要检查是否存在
   If Not Text1(8).Text = "" Then
      Dim sqlhcheck As String
      Dim rs_hcheck As New ADODB.Recordset
      sqlhcheck = "select * from House where 房屋编号 = '" & Text1(8).Text & "'"
      rs_hcheck.Open sqlhcheck, conn, adOpenStatic, adLockOptimistic
      If rs_hcheck.EOF Then
         MsgBox "该房屋编号不存在,请重填或清空!", vbOKOnly + vbInformation, "注意"
         Text1(8).SetFocus
         rs_hcheck.Close
         Exit Sub
      End If
      rs_hcheck.Close
   End If
   '添加数据后保存
   If add = 1 Then
      '检测房屋编号这个主键是否已经在表中存在
      Dim rs_check As New ADODB.Recordset
      Dim sqlCheck As String
      sqlCheck = "select * from QZClient 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_qzclient.AddNew
      For i = 0 To 9
         rs_qzclient.Fields(i) = Text1(i).Text
      Next i
      
      rs_qzclient.Update
      '添加之后显示总共条数信息加 1
      Text2.Text = Val(Text2.Text) + 1
   '修改数据后的保存
   Else
      rs_qzclient.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
   cmdYuDing.Enabled = True
   For i = 0 To 9
      Text1(i).Enabled = False
   Next i
   
End Sub

Private Sub cmdYuDing_Click()
   '下定之前,先判断客户和房屋编号是否为空
   If Text1(1).Text = "" Or Text1(8).Text = "" Then
      MsgBox "预定时客户姓名或意向房屋编号不可为空!", vbOKOnly + vbInformation, "注意"
      Exit Sub
   End If
   '设置全局变量fromqzc为true
   fromqzc = True
   frmYuDing.Show
End Sub

Private Sub Form_Activate()
   Dim X0 As Long
   Dim Y0 As Long
   '让窗体居中
   X0 = Screen.Width
   Y0 = Screen.Height
   X0 = (X0 - Me.Width) / 2
   Y0 = (Y0 - Me.Height) / 2
   Me.Move X0, Y0
   cmdSave.Enabled = False
   cmdCancel.Enabled = False
   
 '开始时设置全局变量fromqzc为false
 fromqzc = False
 '如果不是查询显示,则显示第一条记录
 If queryqzc = False Then
   '在from_laod()方法中打开住户信息表
   '如果rs_count rs_qzclient 当前状态是打开的,则先关闭之
   If rs_count.State = adStateOpen Then
      rs_count.Close
   End If
   If rs_qzclient.State = adStateOpen Then
      rs_qzclient.Close
   End If
   sqlqzclient = "select * from QZClient"
   rs_qzclient.CursorLocation = adUseClient
   rs_qzclient.Open sqlqzclient, conn, adOpenStatic, adLockOptimistic
   If rs_qzclient.EOF Then
      Text2.Text = 0
      '没有记录,则提示用户,退出本过程
      MsgBox "当前表中没有记录!", vbOKOnly + vbInformation, "注意"
      '如果是0条记录,需要设置前翻后翻的按钮为不可用
      cmdFirst.Enabled = False
      cmdPrev.Enabled = False
      cmdNext.Enabled = False
      cmdLast.Enabled = False
      cmdDel.Enabled = False
      cmdEdit.Enabled = False
      cmdYuDing.Enabled = False
      Exit Sub
   '找到符合条件的记录
   Else
      '如果有记录,需要设置前翻后翻的按钮为可用
      cmdFirst.Enabled = True
      cmdPrev.Enabled = True
      cmdNext.Enabled = True
      cmdLast.Enabled = True
      cmdDel.Enabled = True
      cmdEdit.Enabled = True
      cmdYuDing.Enabled = True
      '计算总共数据条数
      sqlcount = "select count(*) from QZClient"
      rs_count.Open sqlcount, conn, adOpenStatic, adLockOptimistic
      '有记录则,显示第一条,并且显示记录条数
      Text2.Text = rs_count.Fields(0)
      
      If Not rs_qzclient.EOF And Not rs_qzclient.BOF Then
         For i = 0 To 9
            Text1(i).Text = rs_qzclient.Fields(i)
         Next i
      End If
   End If
       
 '如果是查询显示则相应sql语句为查询语句
 ElseIf queryqzc = True Then
   '因为开始显示时必定打开了rs_qzclient,rs_count,所以应该先关闭它们
   rs_qzclient.Close
   If rs_count.State = adStateOpen Then
      rs_count.Close
   End If
   sqlqzclient = "select * from QZClient " & sqlqzc
   rs_qzclient.CursorLocation = adUseClient
   rs_qzclient.Open sqlqzclient, conn, adOpenStatic, adLockOptimistic
   If rs_qzclient.EOF Then
      Text2.Text = 0
      '如果没有找到记录,则提示用户,置空所有text控件,并且退出本子过程
      MsgBox "没有找到符合条件的记录", vbOKOnly + vbInformation, "注意"
      For i = 0 To 9
         Text1(i).Text = ""
      Next i
      cmdFirst.Enabled = False
      cmdPrev.Enabled = False
      cmdNext.Enabled = False
      cmdLast.Enabled = False
      cmdDel.Enabled = False
      cmdEdit.Enabled = False
      cmdYuDing.Enabled = False
      Exit Sub
   '找到符合条件的记录
   Else
      '如果有记录,需要设置前翻后翻的按钮为可用
      cmdFirst.Enabled = True
      cmdPrev.Enabled = True
      cmdNext.Enabled = True
      cmdLast.Enabled = True
      cmdDel.Enabled = True
      cmdEdit.Enabled = True
      cmdYuDing.Enabled = True
      '计算找到的条数
      sqlcount = "select count(*) from QZClient " & sqlqzc
      rs_count.Open sqlcount, conn, adOpenStatic, adLockOptimistic
      Text2.Text = rs_count.Fields(0)
      '找到符合条件的记录,显示之
      
      For i = 0 To 9
         Text1(i).Text = rs_qzclient.Fields(i)
      Next i
   End If
         
 End If
   '设置各个text框不可写
   For i = 0 To 9
      Text1(i).Enabled = False
   Next i
   
End Sub

Private Sub Form_Unload(Cancel As Integer)
   rs_qzclient.Close
   If rs_count.State = adStateOpen Then
      rs_count.Close
   End If
   '关闭时还需要设置queryqzc为false
   queryqzc = False
End Sub


⌨️ 快捷键说明

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