📄 frmsigncontract.frm
字号:
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 + -