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

📄 frmsigncontract.frm

📁 本课题为实践课题
💻 FRM
📖 第 1 页 / 共 2 页
字号:
            Caption         =   "元"
            Height          =   255
            Index           =   1
            Left            =   4920
            TabIndex        =   20
            Top             =   1560
            Width           =   255
         End
         Begin VB.Label Label2 
            Caption         =   "元"
            Height          =   255
            Index           =   2
            Left            =   7440
            TabIndex        =   19
            Top             =   1560
            Width           =   255
         End
         Begin VB.Label Label1 
            Caption         =   "业务员"
            Height          =   255
            Index           =   9
            Left            =   360
            TabIndex        =   18
            Top             =   2160
            Width           =   735
         End
         Begin VB.Label Label1 
            Caption         =   "签订日期"
            Height          =   255
            Index           =   10
            Left            =   2760
            TabIndex        =   17
            Top             =   2160
            Width           =   735
         End
      End
   End
   Begin VB.Frame Frame3 
      Caption         =   "功能键"
      Height          =   975
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   8535
      Begin VB.CommandButton cmdZuJin 
         Caption         =   "收取租金"
         Height          =   495
         Left            =   4680
         TabIndex        =   58
         Top             =   240
         Width           =   975
      End
      Begin VB.CommandButton cmdYaJin 
         Caption         =   "收取押金"
         Height          =   495
         Left            =   3360
         TabIndex        =   57
         Top             =   240
         Width           =   975
      End
      Begin VB.CommandButton cmdReset 
         Caption         =   "清空重填"
         Height          =   495
         Left            =   6000
         TabIndex        =   56
         Top             =   240
         Width           =   975
      End
      Begin VB.CommandButton cmdAddClient 
         Caption         =   "添加租户资料"
         Height          =   495
         Left            =   1680
         TabIndex        =   55
         Top             =   240
         Width           =   1335
      End
      Begin VB.CommandButton cmdClose 
         Caption         =   "关  闭"
         Height          =   495
         Left            =   7200
         TabIndex        =   14
         Top             =   240
         Width           =   975
      End
      Begin VB.CommandButton cmdSign 
         Caption         =   "签  订"
         Height          =   495
         Left            =   360
         TabIndex        =   13
         Top             =   240
         Width           =   975
      End
   End
End
Attribute VB_Name = "frmSignContract"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'定义几个变量用于检查客户和房屋状态,以及打开合同表
Dim rs_ccheck As New ADODB.Recordset
Dim rs_hcheck As New ADODB.Recordset
Dim rs_contract As New ADODB.Recordset
Dim rs_yd As New ADODB.Recordset
Dim rs_qzc As New ADODB.Recordset
Dim sqlc As String
Dim sqlh As String
Dim sqlcon As String
Dim sqlyd As String
Dim sqlqzc As String
'设置两个变量用于显示房屋资料时使用
Dim rs_house As New ADODB.Recordset
Dim sqlhouse As String



Private Sub cmdAddClient_Click()
   frmClient.Show
End Sub

Private Sub cmdClose_Click()
   Unload Me
End Sub

Private Sub cmdReset_Click()
   '清空所有text
   For i = 0 To 11
      Text1(i).Text = ""
   Next i
   '设置租期和总租金为不可写,其值为计算而得
   Text1(5).Enabled = False
   Text1(7).Enabled = False
   '设定签订日期和起租日期为当前日期
   Text1(10).Text = Date
   Text1(3).Text = Date
   '设置签订按钮可用
   cmdSign.Enabled = True
   
End Sub

Private Sub cmdSign_Click()
   '先检查输入数据完整性
   For i = 0 To 2
      If Text1(i).Text = "" Then
         MsgBox "除备注外的所有项不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(i).SetFocus
         Exit Sub
      End If
   Next i
   For i = 3 To 4
      If Text1(i).Text = "" Or IsDate(Text1(i).Text) = False Then
         MsgBox "日期应为这样的格式:2003-7-15!", vbOKOnly + vbInformation, "注意"
         Text1(i).SetFocus
         Exit Sub
      End If
   Next i
   If Text1(6).Text = "" Or IsNumeric(Text1(6).Text) = False Then
      MsgBox "月租金应为数字!", vbOKOnly + vbInformation, "注意"
      Text1(6).SetFocus
      Exit Sub
   End If
   If Text1(8).Text = "" Or IsNumeric(Text1(8).Text) = False Then
      MsgBox "押金应为数字!", vbOKOnly + vbInformation, "注意"
      Text1(8).SetFocus
      Exit Sub
   End If
   If Text1(9).Text = "" Then
      MsgBox "业务员不可为空!", vbOKOnly + vbInformation, "注意"
      Text1(9).SetFocus
      Exit Sub
   End If
   If Text1(10).Text = "" Or IsDate(Text1(10).Text) = False Then
      MsgBox "签订日期应为这样的格式:2003-7-15!", vbOKOnly + vbInformation, "注意"
      Text1(10).SetFocus
      Exit Sub
   End If
      
   '止租日期不能前于起租日期
   If DateValue(Text1(4).Text) < DateValue(Text1(3).Text) Then
      MsgBox "止租日期不能前于起租日期", vbOKOnly + vbInformation, "注意"
      Text1(4).SetFocus
      Exit Sub
   End If
   
   '租期等于起租日期和止租日期之差,结尾不足一月,按一月计。
   '使用datediff 函数计算日期之差
   Text1(5).Text = Int(DateDiff("d", DateValue(Text1(3).Text), DateValue(Text1(4).Text)) / 31) + 1
   '总租金等于月租金乘以租期
   Text1(7).Text = Val(Text1(5).Text) * Val(Text1(6).Text)
   
   '检查完数据完整性后,还需要检查该客户是否已存入租户表中,以及该房屋是否为未出租或预定状态
   sqlc = "select * from Client where 租户姓名 = '" & Text1(1).Text & "'"
   rs_ccheck.Open sqlc, conn, adOpenStatic, adLockOptimistic
   If rs_ccheck.EOF = True Then
      rs_ccheck.Close
      MsgBox "该客户资料还未存入租户资料表中,请先录入该客户资料!", vbOKOnly + vbInformation, "注意"
      Exit Sub
   End If
   rs_ccheck.Close
   '检测房屋状态
   sqlh = "select * from House where 房屋编号 = '" & Text1(2).Text & "'"
   rs_hcheck.Open sqlh, conn, adOpenStatic, adLockOptimistic
   If rs_hcheck.EOF = True Then
      MsgBox "该房屋编号不存在,请重新输入一个!", vbOKOnly + vbInformation, "注意"
      Text1(2).SetFocus
      rs_hcheck.Close
      Exit Sub
   ElseIf rs_hcheck.Fields(8) = "已租" Then
      MsgBox "该房屋已经出租了,请选择另一房屋!", vbOKOnly + vbInformation, "注意"
      rs_hcheck.Close
      Exit Sub
   '如果该房屋状态为预定,则需要看预定人是否为该客户,如果不是,需要弹出对话框提示用户
   ElseIf rs_hcheck.Fields(8) = "预定" Then
       '检查该客户是否为预定客户
       sqlyd = "select * from YuDing where 预定房屋编号 = '" & Text1(2).Text & " '"
       rs_yd.Open sqlyd, conn, adOpenStatic, adLockOptimistic
       '如果该客户不是预定客户,检查预定有效期
       If Not rs_yd.Fields(1) = Text1(1).Text Then
          '如果已经过了预定有效期,别的用户可以承租
          If (Date > DateAdd(d, rs_yd.Fields(4), rs_yd.Fields(8))) Then
             '出租,加入合同表
             sqlcon = "select * from Contract"
             rs_contract.Open sqlcon, conn, adOpenStatic, adLockOptimistic
             rs_contract.AddNew
             For i = 0 To 11
                rs_contract.Fields(i) = Text1(i).Text
             Next i
             rs_contract.Update
             '修改房屋状态
             rs_hcheck(8) = "已租"
             rs_hcheck.Update
             '检查求租客户表中是否有该客户,如果有,则删除之
             sqlqzc = "select * from QZClient where 求租客户姓名 = '" & Text1(1).Text & "'"
             rs_qzc.Open sqlqzc, conn, adOpenStatic, adLockOptimistic
             If rs_qzc.EOF = False Then
                rs_qzc.Delete
                rs_qzc.Update
             End If
             '显示签订合同成功
             MsgBox "签订合同成功!", vbOKOnly + vbInformation, "注意"
             '设置签订按钮不可用
             cmdSign.Enabled = False
             cmdYaJin.Enabled = True
             cmdZuJin.Enabled = True
             '关闭所有打开的记录集
             rs_qzc.Close
             rs_yd.Close
             rs_hcheck.Close
             rs_contract.Close
             Exit Sub
          Else
             MsgBox "该房屋已经被别人预定了,请选择另一房屋!", vbOKOnly + vbInformation, "注意"
             rs_hcheck.Close
             rs_yd.Close
             Exit Sub
          End If
       '该客户即为预定客户,可以出租
       ElseIf rs_yd.Fields(1) = Text1(1).Text Then
           '出租,加入合同表
             sqlcon = "select * from Contract"
             rs_contract.Open sqlcon, conn, adOpenStatic, adLockOptimistic
             rs_contract.AddNew
             For i = 0 To 11
                rs_contract.Fields(i) = Text1(i).Text
             Next i
             rs_contract.Update
             '修改房屋状态
             rs_hcheck(8) = "已租"
             rs_hcheck.Update
             '删除预定表中该项
             rs_yd.Delete
             rs_yd.Update
             '检查求租客户表中是否有该客户,如果有,则删除之
             sqlqzc = "select * from QZClient where 求租客户姓名 = '" & Text1(1).Text & "'"
             rs_qzc.Open sqlqzc, conn, adOpenStatic, adLockOptimistic
             If rs_qzc.EOF = False Then
                rs_qzc.Delete
                rs_qzc.Update
             End If
             '显示签订合同成功
             MsgBox "签订合同成功!!", vbOKOnly + vbInformation, "注意"
             '设置签订按钮不可用
             cmdSign.Enabled = False
             cmdYaJin.Enabled = True
             cmdZuJin.Enabled = True
             '关闭所有打开的记录集
             rs_qzc.Close
             rs_yd.Close
             rs_hcheck.Close
             rs_contract.Close
             
             Exit Sub
        End If
    '如果该房屋状态为未租,则可以顺利出租
    ElseIf rs_hcheck.Fields(8) = "未租" Then
        '出租,加入合同表
        sqlcon = "select * from Contract"
        rs_contract.Open sqlcon, conn, adOpenStatic, adLockOptimistic
        rs_contract.AddNew
        For i = 0 To 11
            rs_contract.Fields(i) = Text1(i).Text
        Next i
        rs_contract.Update
        
        '修改房屋状态
        rs_hcheck(8) = "已租"
        rs_hcheck.Update
        '检查求租客户表中是否有该客户,如果有,则删除之
        sqlqzc = "select * from QZClient where 求租客户姓名 = '" & Text1(1).Text & "'"
        rs_qzc.Open sqlqzc, conn, adOpenStatic, adLockOptimistic
        If rs_qzc.EOF = False Then
            rs_qzc.Delete
            rs_qzc.Update
        End If
        '显示签订合同成功
        MsgBox "签订合同成功!", vbOKOnly + vbInformation, "注意"
        '设置签订按钮不可用
        cmdSign.Enabled = False
        cmdYaJin.Enabled = True
        cmdZuJin.Enabled = True
        '关闭所有打开的记录集
        rs_qzc.Close
        rs_hcheck.Close
        rs_contract.Close
        Exit Sub
    End If
       
End Sub

Private Sub cmdYaJin_Click()
   fromContract = True
   frmPayYaJin.Show
   cmdYaJin.Enabled = False
   
End Sub

Private Sub cmdZuJin_Click()
   ZuJinfromContract = True
   frmPayZuJin.Show
   cmdZuJin.Enabled = False
End Sub

Private Sub Form_Load()
   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
   cmdYaJin.Enabled = False
   cmdZuJin.Enabled = False
   '如果要显示的是租房合同选项卡
   If SSTab1.Tab = 0 Then
      '清空所有text
      For i = 0 To 11
         Text1(i).Text = ""
      Next i
      '设置租期和总租金为不可写,其值为计算而得
      Text1(5).Enabled = False
      Text1(7).Enabled = False
      '设定签订日期和起租日期为当前日期
      Text1(10).Text = Date
      Text1(3).Text = Date
   '如果要显示的是房屋信息选项卡
   ElseIf SSTab1.Tab = 1 Then
      '开始时,由于租房合同没有显示,因此相应的房屋资料也都显示为空
      For i = 12 To 19
          Text1(i).Text = ""
      Next i
      '还需要设置上面的按钮除关闭按钮之外不可用
      cmdSign.Enabled = False
      cmdAddClient.Enabled = False
      cmdReset.Enabled = False
  End If
      
End Sub


Private Sub Form_Unload(Cancel As Integer)
   If rs_contract.State = adStateOpen Then
      rs_contract.Close
   End If
   Unload Me
End Sub

Private Sub SSTab1_Click(PreviousTab As Integer)
   If SSTab1.Tab = 1 Then
      '首先需要设置上面的按钮除关闭按钮之外不可用
      cmdSign.Enabled = False
      cmdAddClient.Enabled = False
      cmdReset.Enabled = False
      '如果租房合同选项卡没有房屋编号,则房屋资料显示为空
      If Text1(2).Text = "" Then
         For i = 12 To 19
            Text1(i).Text = ""
         Next i
         Exit Sub
         
      End If
      '如果房屋编号不为空
      If rs_house.State = adStateOpen Then
         rs_house.Close
      End If
      sqlhouse = "select * from house where 房屋编号 = '" & Text1(2).Text & "'"
      rs_house.Open sqlhouse, conn, adOpenStatic, adLockOptimistic
      '如果该房屋编号不存在,则提示用户
      If rs_house.EOF = True Then
         MsgBox "该房屋编号不存在!", vbOKOnly + vbInformation, "注意"
         For i = 12 To 19
            Text1(i).Text = ""
         Next i
         Exit Sub
      Else
         For i = 12 To 19
            Text1(i).Text = rs_house.Fields(i - 12)
         Next i
         If rs_house.Fields(8) = "未租" Then
            Combo1.ListIndex = 0
         ElseIf rs_house.Fields(8) = "已租" Then
            Combo1.ListIndex = 1
         Else
            Combo1.ListIndex = 2
         End If
      End If
      
   Else
      '当单击租房合同选项卡时,只需要把所有按钮设为可用即可
      cmdSign.Enabled = True
      cmdAddClient.Enabled = True
      cmdReset.Enabled = True
   End If
            
End Sub

⌨️ 快捷键说明

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