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

📄 frmleaseedit.frm

📁 汽车租赁管理系统,采用VB+SQL实现,包含源程序及数据库备份,完美运行,完整无缺.
💻 FRM
📖 第 1 页 / 共 3 页
字号:


Private Sub Cmd_Cancel_Click()
  Unload Me
End Sub

Private Sub Cmd_OK_Click()
  '域校验过程,验证合同编号、车牌号、客户号、租赁模式、租赁时间是否输入正确
  If Len(Trim(txtContractNo)) = 0 Then
    MsgBox ("请输入合同编号")
    txtContractNo.SetFocus
    Exit Sub
  End If
  If Len(Trim(txtCarNo)) = 0 Then
    MsgBox ("请输入车牌号")
    txtCarNo.SetFocus
    Exit Sub
  End If
  If Len(Trim(txtCustId)) = 0 Then
    MsgBox ("请输入客户号")
    txtCustId.SetFocus
    Exit Sub
  End If
  If Len(Trim(cob_Mode.Text)) = 0 Then
    MsgBox ("请选择租赁模式")
    cob_Mode.SetFocus
    Exit Sub
  End If
  If Len(Trim(txtLeaseTime)) = 0 Then
    MsgBox ("请输入租赁时间")
    txtLeaseTime.SetFocus
    Exit Sub
  End If
  '如果为按日的租赁模式,则工作日和周末个数不能同时为0
  If Trim(cob_Mode.Text) = "日" Then
    If Val(txtWorkDays) = 0 And Val(txtWeekEndCount) = 0 Then
      MsgBox ("请输入按日租赁的工作日或者周末个数")
      txtWorkDays.SetFocus
      Exit Sub
    End If
  Else              '按周、月租赁则租赁周数、月份数不能为0
    If Val(txtWorkDays) = 0 Then
      MsgBox ("请输入租赁的周数或者月份数")
      txtWorkDays.SetFocus
      Exit Sub
    End If
  End If
  With MyLease
    .CarNo = MakeStr(txtCarNo)          '车牌号
    .CustId = MakeStr(txtCustId)        '客户编号
    .LeaseMode = MakeStr(cob_Mode.Text) '租赁模式
    '记录当前租赁价格
    If MakeStr(cob_Mode.Text) = "日" Then   '如果租赁模式为按日,则记录工作日价格和周末价格
      .Price1 = AdoPrice.Recordset.Fields(1)
      .Price2 = AdoPrice.Recordset.Fields(2)
      .WorkDays = Val(txtWorkDays)
      .WeekEndCount = Val(txtWeekEndCount)
    ElseIf MakeStr(cob_Mode.Text) = "周" Then   '如果按周或者月,则只在Price1中记录价格
      .Price1 = AdoPrice.Recordset.Fields(3)
      .Price2 = 0
      '按周模式租赁,则WorkDays中保存租赁周的个数
      .WorkDays = Val(txtWorkDays)
      .WeekEndCount = 0
    ElseIf MakeStr(cob_Mode.Text) = "月" Then  '如果按周或者月,则只在Price1中记录价格
      .Price1 = AdoPrice.Recordset.Fields(4)
      .Price2 = 0
      '按月模式租赁,则WorkDays中保存租赁月的个数
      .WorkDays = Val(txtWorkDays)
      .WeekEndCount = 0
    End If
    .DayKM = AdoPrice.Recordset.Fields(5)   '日限公里数
    .OPrice1 = AdoPrice.Recordset.Fields(6) '租金(与租赁模式相关)
    .OPrice2 = AdoPrice.Recordset.Fields(7) '周末租金
    .LeaseTime = MakeStr(txtLeaseTime)      '租赁时间
    .ReturnTime = MakeStr(txtReturnTime)    '应返回时间
    .Deposit = AdoPrice.Recordset.Fields(0) '押金
    .OutKM = Val(txtOutKM)                  '出车公里数
    .Rate = AdoCustomer.Recordset.Fields(5) '享受折扣
    .Total = Val(txtCost)                   '消费总额
    .CreateDate = Date                      '创建时间
    .UserName = MakeStr(txtUserName)        '创建人
    If Modify = False Then        '添加记录
      '判断合同编号是否重复
      If .In_DB(Trim(txtContractNo)) = True Then
        MsgBox ("已经存在此合同编号")
        txtContractNo.SetFocus
        Exit Sub
      End If
      .ContractNo = MakeStr(txtContractNo)  '合同编号
      .Status = "出租"                      '合同状态
      .Insert
    Else                          '修改记录
      .Update (ContractNo)
    End If
  End With
  Unload Me
End Sub

Private Sub Cmd_SchMember_Click()
  '按照输入的客户号,得到客户信息
  If Len(Trim(txtCustId)) = 0 Then
    MsgBox ("请输入客户号")
    txtCustId.SetFocus
    Exit Sub
  End If
  '判断是否存在此车牌号以及相关信息
  If MyCustomer.In_DB(Trim(txtCustId)) = False Then
    MsgBox ("不存在此客户号")
    txtCustId.SetFocus
    Exit Sub
  End If
  sCustId = Trim(txtCustId) '提取客户编号
  CustomerRefresh           '刷新客户信息
End Sub

Private Sub Cmd_SearchCar_Click()
  '按照输入的车牌号,得到车辆信息
  If Len(Trim(txtCarNo)) = 0 Then
    MsgBox ("请输入车牌号")
    txtCarNo.SetFocus
    Exit Sub
  End If
  '判断是否存在此车牌号以及相关信息
  If MyCar.GetInfo(Trim(txtCarNo)) = False Then
    MsgBox ("不存在此车牌号")
    txtCarNo.SetFocus
    Exit Sub
  Else
    If Trim(MyCar.Status) <> "待命" Then  '判断此车状态是否为待命
      MsgBox ("此车已经出租")
      txtCarNo.SetFocus
    End If
  End If
  sCarNo = Trim(txtCarNo) '提取此车车牌号
  CarRefresh              '刷新车辆信息
  CarPriceRefresh         '刷新租赁价格
End Sub
'更改租赁模式时更新费用金额
Private Sub cob_Mode_Click()
  '需要先选择车牌和客户信息
  If sCarNo = "" Or sCustId = "" Then
    MsgBox ("请先选择车辆和客户信息")
    Exit Sub
  End If
  nCnt = Val(txtWorkDays)
  nECnt = Val(txtWeekEndCount)
  '设置部分控件可用
  txtWorkDays.Enabled = True
  Label13.Enabled = True
  Label14.Enabled = True
  '如果租赁模式为按日租赁,则工作日和周末个数可用
  If Trim(cob_Mode.Text) = "日" Then
    Label13.Caption = "工作日"
    Label19.Enabled = True
    Label20.Enabled = True
    txtWeekEndCount.Enabled = True

    If Not AdoPrice.Recordset.EOF Then
      '总费用=工作日租赁价格*工作日个数+周末租金*周末个数
      lCost = Val(AdoPrice.Recordset.Fields(1)) * nCnt + Val(AdoPrice.Recordset.Fields(2)) * nECnt
    End If
    If txtLeaseTime <> "" Then
      '以日为单位将 工作日+周末个数*2=天数 添加到租赁日期而计算返回时间
      txtReturnTime = Trim(DateAdd("d", nCnt + nECnt * 2, CDate(txtLeaseTime)))
    End If
  ElseIf Trim(cob_Mode.Text) = "周" Then
    Label13.Caption = "周数"
    Label19.Enabled = False
    Label20.Enabled = False
    txtWeekEndCount.Enabled = False
    If Not AdoPrice.Recordset.EOF Then
      '总费用=周租金*周数
      lCost = Val(AdoPrice.Recordset.Fields(3)) * nCnt
    End If
    If txtLeaseTime <> "" Then
      '以日为单位将 周个数*7=天数 添加到租赁日期而计算返回时间
      txtReturnTime = Trim(DateAdd("d", nCnt * 7, CDate(txtLeaseTime)))
    End If
  ElseIf Trim(cob_Mode.Text) = "月" Then
    Label13.Caption = "月份数"
    Label19.Enabled = False
    Label20.Enabled = False
    txtWeekEndCount.Enabled = False
    If Not AdoPrice.Recordset.EOF Then
      '总费用=月租金*月个数
      lCost = Val(AdoPrice.Recordset.Fields(4)) * nCnt
    End If
    If txtLeaseTime <> "" Then
      '以月为单位将月个数添加到租赁日期而计算返回时间
      txtReturnTime = Trim(DateAdd("m", nCnt, CDate(txtLeaseTime)))
    End If
  End If
  If Not AdoCustomer.Recordset.EOF Then
    '总体消费金额还要乘以折扣,不是会员只能乘以1
    txtCost = lCost * Val(AdoCustomer.Recordset.Fields(5))
  End If
End Sub
'刷新汽车信息
Public Sub CarRefresh()
  AdoCar.ConnectionString = conn
  AdoCar.RecordSource = "SELECT c.CarName AS 车辆名称,t.TypeName AS 车辆类型," _
     + "c.Color AS 颜色,c.BuyDate AS 购买日期 " _
     + " FROM Cars c,Types t" _
     + " WHERE c.TypeId=t.Id AND c.CarNO='" + Trim(sCarNo) + "'"
  AdoCar.Refresh
  Set DataGrid1.DataSource = AdoCar
  DataGrid1.Columns(0).Width = 1400
  DataGrid1.Columns(1).Width = 1200
  DataGrid1.Columns(2).Width = 1000
  DataGrid1.Columns(3).Width = 1600
End Sub
'刷新汽车租赁价格信息
Public Sub CarPriceRefresh()
  AdoPrice.ConnectionString = conn
  AdoPrice.RecordSource = "SELECT Deposit AS 押金,DayPrice AS 工作日价格," _
     + "WeekEndPrice AS 周末价格,WeekPrice AS 周价格,MonthPrice AS 月价格, " _
     + "DayKM AS 日限公里,OverTimePrice AS 超时价格,OverKMPrice AS 超公里价格 " _
     + " FROM Cars WHERE  CarNO='" + Trim(sCarNo) + "'"
  AdoPrice.Refresh
  Set DataGrid2.DataSource = AdoPrice
  DataGrid2.Columns(0).Width = 800
  DataGrid2.Columns(1).Width = 1000
  DataGrid2.Columns(2).Width = 1000
  DataGrid2.Columns(3).Width = 1000
  DataGrid2.Columns(4).Width = 1000
  DataGrid2.Columns(5).Width = 1000
  DataGrid2.Columns(6).Width = 1000
  DataGrid2.Columns(7).Width = 1000
End Sub

'刷新客户信息
Public Sub CustomerRefresh()
  AdoCustomer.ConnectionString = conn
  AdoCustomer.RecordSource = "SELECT c.Name AS 姓名,c.Sex AS 性别," _
     + "c.Telephone AS 电话,c.LicenseNo AS 驾驶证号," _
     + " CASE c.Flag WHEN 0 THEN '' ELSE m.TypeName END AS 会员类型," _
     + " CASE c.Flag WHEN 0 THEN 1 ELSE m.Rate END AS 折扣 " _
     + " FROM Customer c LEFT outer JOIN MemberType m" _
     + " ON c.TypeId=m.Id where c.Id='" + Trim(sCustId) + "'"
  AdoCustomer.Refresh
  Set DataGrid3.DataSource = AdoCustomer
  DataGrid3.Columns(0).Width = 1000
  DataGrid3.Columns(1).Width = 700
  DataGrid3.Columns(2).Width = 1600
  DataGrid3.Columns(3).Width = 1600
  DataGrid3.Columns(4).Width = 1000
  DataGrid3.Columns(5).Width = 1000
End Sub

Private Sub Form_Load()
  CustomerRefresh
  CarPriceRefresh
  CarRefresh
  '加载租赁模式
  cob_Mode.AddItem "日", 0
  cob_Mode.AddItem "周", 1
  cob_Mode.AddItem "月", 2
End Sub

Private Sub txtWeekEndCount_Change()
  If sCarNo = "" Or sCustId = "" Then
    MsgBox ("请先选择车辆和客户信息")
    Exit Sub
  End If
  '更改时间同时计算租车的总费用,查看租赁模式,如果为日,则按天价格计算总费用,否则不变
  nCnt = Val(txtWorkDays)
  nECnt = Val(txtWeekEndCount)
  If Trim(cob_Mode.Text) = "日" Then
    lCost = Val(AdoPrice.Recordset.Fields(1)) * nCnt + Val(AdoPrice.Recordset.Fields(2)) * nECnt
    txtReturnTime = Trim(DateAdd("d", nCnt + nECnt * 2, CDate(txtLeaseTime)))
  End If
  '总体消费金额还要乘以折扣,不是会员只能乘以1
  txtCost = lCost * Val(AdoCustomer.Recordset.Fields(5))
End Sub

'更改时间同时计算租车的总费用
'查看租赁模式,如果为日,则按天价格计算总费用;如果按周,则将计算日期相差的天数;
'如果按月,则计算日期相差的月份而后乘以月价格
Private Sub txtWorkDays_Change()
  If sCarNo = "" Or sCustId = "" Then
    MsgBox ("请先选择车辆和客户信息")
    Exit Sub
  End If
  nCnt = Val(txtWorkDays)       '租赁的工作日个数或周个数或月个数
  nECnt = Val(txtWeekEndCount)  '租赁的周末个数
  If Trim(cob_Mode.Text) = "日" Then
    '总费用=工作日租赁价格*工作日个数+周末租金*周末个数
    If Not AdoPrice.Recordset.EOF Then
      lCost = Val(AdoPrice.Recordset.Fields(1)) * nCnt + Val(AdoPrice.Recordset.Fields(2)) * nECnt
    End If
    '以日为单位将 工作日+周末个数*2=天数 添加到租赁日期而计算返回时间
    If txtLeaseTime <> "" Then
      txtReturnTime = Trim(DateAdd("d", nCnt + nECnt * 2, CDate(txtLeaseTime)))
    End If
  ElseIf Trim(cob_Mode.Text) = "周" Then
    If Not AdoPrice.Recordset.EOF Then
      '总费用=周租金*周数
      lCost = Val(AdoPrice.Recordset.Fields(3)) * nCnt
    End If
    If txtLeaseTime <> "" Then
      '以日为单位将 周个数*7=天数 添加到租赁日期而计算返回时间
      txtReturnTime = Trim(DateAdd("d", nCnt * 7, CDate(txtLeaseTime)))
    End If
  ElseIf Trim(cob_Mode.Text) = "月" Then
    If Not AdoPrice.Recordset.EOF Then
      '总费用=月租金*月个数
      lCost = Val(AdoPrice.Recordset.Fields(4)) * nCnt
    End If
    If txtLeaseTime <> "" Then
      '以月为单位将月个数添加到租赁日期而计算返回时间
      txtReturnTime = Trim(DateAdd("m", nCnt, CDate(txtLeaseTime)))
    End If
  End If
  If Not AdoCustomer.Recordset.EOF Then
    '总体消费金额还要乘以折扣,不是会员只能乘以1
    txtCost = lCost * Val(AdoCustomer.Recordset.Fields(5))
  End If
End Sub

⌨️ 快捷键说明

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